mirror of
https://github.com/Hopiu/django-modeltranslation.git
synced 2026-05-25 04:33:45 +00:00
44 lines
1.9 KiB
Python
44 lines
1.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
import sys
|
|
|
|
from django.conf import settings
|
|
from django.core.exceptions import ImproperlyConfigured
|
|
from django.db import models
|
|
|
|
from modeltranslation.translator import translator
|
|
|
|
# Every model registered with the modeltranslation.translator.translator
|
|
# is patched to contain additional localized versions for every
|
|
# field specified in the model's translation options.
|
|
|
|
# Import the project's global "translation.py" which registers model
|
|
# classes and their translation options with the translator object.
|
|
if getattr(settings, 'TRANSLATION_REGISTRY', False):
|
|
try:
|
|
__import__(settings.TRANSLATION_REGISTRY, {}, {}, [''])
|
|
except ImportError:
|
|
sys.stderr.write("modeltranslation: Can't import module '%s'.\n"
|
|
"(If the module exists, it's causing an "
|
|
"ImportError somehow.)\n" %\
|
|
settings.TRANSLATION_REGISTRY)
|
|
# For some reason ImportErrors raised in translation.py or in modules
|
|
# that are included from there become swallowed. Work around this
|
|
# problem by printing the traceback explicitly.
|
|
import traceback
|
|
traceback.print_exc()
|
|
|
|
# After importing all translation modules, all translation classes are
|
|
# registered with the translator.
|
|
if settings.DEBUG:
|
|
try:
|
|
if sys.argv[1] in ('runserver', 'runserver_plus'):
|
|
translated_model_names = ', '.join(
|
|
t.__name__ for t in translator._registry.keys())
|
|
print('modeltranslation: Registered %d models for '
|
|
'translation (%s).' % (len(translator._registry),
|
|
translated_model_names))
|
|
except IndexError:
|
|
pass
|
|
else:
|
|
raise ImproperlyConfigured("You haven't set the TRANSLATION_REGISTRY "
|
|
"setting yet.")
|