#26046: ugettext causes error when unrecognized language code in language cookie
--------------------------------------+--------------------
Reporter: jenlu | Owner: nobody
Type: Uncategorized | Status: new
Component: Internationalization | Version: 1.9
Severity: Normal | Keywords: i18n
Triage Stage: Unreviewed | Has patch: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------------+--------------------
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'
--
Ticket URL: <https://code.djangoproject.com/ticket/26046>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/048.59097c726d742abcd4e1de4c386f6375%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.