#26046 closed Bug (fixed)
ugettext causes error when unrecognized language code in language cookie
Reported by: | jenlu | Owned by: | Claude Paroz |
---|---|---|---|
Component: | Internationalization | Version: | dev |
Severity: | Release blocker | Keywords: | i18n |
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 (last modified by )
Currently attempting to upgrade Django 187 --> 191 but am running into an unexpected problem with translations in my template files. At first occurrence of a trans-tag in template I get the error below. Seems to me like ugettext is not defaulting back correctly when no mo/po file is found or match for this language 'no' (norwegian).
I ended up migrating all users from 'no' to 'nb' (Norwegian Bokmal) and since this is a recognized language code then things work.
Still, seems a little hard to get server error under Django 1.9.1 just because a erroneous language code is set by mistake...
Attached trace info below:
NoneType' object has no attribute 'get' Request Method: GET Request URL: http://shootnscoreit.com/dashboard/ Django Version: 1.9.1 Exception Type: AttributeError Exception Value: 'NoneType' object has no attribute 'get' Exception Location: /usr/local/lib/python2.7/gettext.py in ugettext, line 400 ... usr/local/lib/python2.7/gettext.py in ugettext 400. tmsg = self._catalog.get(message, missing) Local Vars Variable Value message u'Armoury' self <DjangoTranslation lang:no> missing <object object at 0x7f0e72c00740> ... File "/home/tss/webapps/shoot_django/lib/python2.7/django/templatetags/i18n.py", line 89, in render value = render_value_in_context(output, context) File "/home/tss/webapps/shoot_django/lib/python2.7/django/template/base.py", line 1022, in render_value_in_context value = force_text(value) File "/home/tss/webapps/shoot_django/lib/python2.7/django/utils/encoding.py", line 78, in force_text s = six.text_type(s) File "/home/tss/webapps/shoot_django/lib/python2.7/django/utils/functional.py", line 114, in __text_cast return func(*self.__args, **self.__kw) File "/home/tss/webapps/shoot_django/lib/python2.7/django/utils/translation/__init__.py", line 85, in ugettext return _trans.ugettext(message) File "/home/tss/webapps/shoot_django/lib/python2.7/django/utils/translation/trans_real.py", line 318, in ugettext return do_translate(message, 'ugettext') File "/home/tss/webapps/shoot_django/lib/python2.7/django/utils/translation/trans_real.py", line 298, in do_translate result = getattr(translation_object, translation_function)(eol_message) File "/usr/local/lib/python2.7/gettext.py", line 400, in ugettext tmsg = self._catalog.get(message, missing) AttributeError: 'NoneType' object has no attribute 'get'
Change History (7)
comment:1 by , 9 years ago
Description: | modified (diff) |
---|
comment:2 by , 9 years ago
Owner: | changed from | to
---|---|
Severity: | Normal → Release blocker |
Status: | new → assigned |
Triage Stage: | Unreviewed → Accepted |
Type: | Uncategorized → Bug |
Version: | 1.9 → master |
comment:4 by , 9 years ago
Triage Stage: | Accepted → Ready for checkin |
---|
This is a regression caused by cd3c042b0473e762b0e89bc69a9244c4a1fed66e