--- /dev/null
+# -*- 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.")