#25915 closed Bug (fixed)
Error when using a language that Django doesn't ship translations for
Reported by: | Gavin Wahl | Owned by: | Claude Paroz |
---|---|---|---|
Component: | Internationalization | Version: | 1.8 |
Severity: | Release blocker | Keywords: | |
Cc: | Triage Stage: | Ready for checkin | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
I am trying to add translations for a new language (that Django doesn't support) to my project. Let's say it has the language code xxx
for example.
I make the .po file with
./manage.py makemessages -l xxx
Then I translate the po file and compile it. When I set LANGUAGE_CODE = 'xxx'
and run runserver, Django fails with:
Traceback (most recent call last): File "./manage.py", line 13, in <module> execute_from_command_line(sys.argv) File "django/core/management/__init__.py", line 350, in execute_from_command_line utility.execute() File "django/core/management/__init__.py", line 324, in execute django.setup() File "django/__init__.py", line 18, in setup apps.populate(settings.INSTALLED_APPS) File "django/apps/registry.py", line 108, in populate app_config.import_models(all_models) File "django/apps/config.py", line 202, in import_models self.models_module = import_module(models_module_name) File "it__.py", line 109, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 2254, in _gcd_import File "<frozen importlib._bootstrap>", line 2237, in _find_and_load File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked File "<frozen importlib._bootstrap>", line 1129, in _exec File "<frozen importlib._bootstrap>", line 1471, in exec_module File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed File "foo/models.py", line 381, in <module> MinLengthValidator(22, _("This value must be at least 22 digits.")), File "django/core/validators.py", line 297, in __init__ if message: File "django/utils/functional.py", line 109, in __wrapper__ res = func(*self.__args, **self.__kw) File "django/utils/translation/__init__.py", line 85, in ugettext return _trans.ugettext(message) File "django/utils/translation/trans_real.py", line 313, in gettext return do_translate(message, 'gettext') File "django/utils/translation/trans_real.py", line 296, in do_translate _default = _default or translation(settings.LANGUAGE_CODE) File "django/utils/translation/trans_real.py", line 203, in translation _translations[language] = DjangoTranslation(language) File "django/utils/translation/trans_real.py", line 112, in __init__ self._init_translation_catalog() File "django/utils/translation/trans_real.py", line 150, in _init_translation_catalog translation = self._new_gnu_trans(localedir, use_null_fallback) File "django/utils/translation/trans_real.py", line 133, in _new_gnu_trans fallback=use_null_fallback) File "/usr/lib/python3.4/gettext.py", line 419, in translation raise OSError(ENOENT, 'No translation file found for domain', domain) FileNotFoundError: [Errno 2] No translation file found for domain: 'django'
It seems that this errors happens whenever you try to use a language that doesn't have a django.po shipped with django (in django/conf/locale/
). Shouldn't I be able to provide the translations just in my project?
Change History (11)
comment:1 by , 9 years ago
comment:3 by , 9 years ago
Could you provide a minimal project to reproduce or a test case for the Django test suite?
comment:5 by , 9 years ago
Severity: | Normal → Release blocker |
---|---|
Triage Stage: | Unreviewed → Accepted |
Type: | Uncategorized → Bug |
Version: | 1.9 → 1.8 |
Bisected to a5f6cbce07b5f3ab48d931e3fd1883c757fb9b45 (previously no error when running manage.py check
with the sample project before that commit)
comment:6 by , 9 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:8 by , 9 years ago
Triage Stage: | Accepted → Ready for checkin |
---|
Maybe you need to add it to
settings.LANGUAGES
too?