Loading django/templatetags/i18n.py +8 −0 Original line number Diff line number Diff line Loading @@ -215,6 +215,7 @@ def do_get_language_info(parser, token): {% get_language_info for LANGUAGE_CODE as l %} {{ l.code }} {{ l.name }} {{ l.name_translated }} {{ l.name_local }} {{ l.bidi|yesno:"bi-directional,uni-directional" }} """ Loading @@ -238,6 +239,7 @@ def do_get_language_info_list(parser, token): {% for l in langs %} {{ l.code }} {{ l.name }} {{ l.name_translated }} {{ l.name_local }} {{ l.bidi|yesno:"bi-directional,uni-directional" }} {% endfor %} Loading @@ -253,6 +255,12 @@ def language_name(lang_code): return translation.get_language_info(lang_code)['name'] @register.filter def language_name_translated(lang_code): english_name = translation.get_language_info(lang_code)['name'] return translation.ugettext(english_name) @register.filter def language_name_local(lang_code): return translation.get_language_info(lang_code)['name_local'] Loading django/utils/translation/__init__.py +8 −3 Original line number Diff line number Diff line Loading @@ -215,17 +215,22 @@ def get_language_info(lang_code): try: lang_info = LANG_INFO[lang_code] if 'fallback' in lang_info and 'name' not in lang_info: return get_language_info(lang_info['fallback'][0]) return lang_info info = get_language_info(lang_info['fallback'][0]) else: info = lang_info except KeyError: if '-' not in lang_code: raise KeyError("Unknown language code %s." % lang_code) generic_lang_code = lang_code.split('-')[0] try: return LANG_INFO[generic_lang_code] info = LANG_INFO[generic_lang_code] except KeyError: raise KeyError("Unknown language code %s and %s." % (lang_code, generic_lang_code)) if info: info['name_translated'] = ugettext_lazy(info['name']) return info trim_whitespace_re = re.compile('\s*\n\s*') Loading docs/releases/1.9.txt +4 −0 Original line number Diff line number Diff line Loading @@ -187,6 +187,10 @@ Internationalization for languages which can be written in different scripts, for example Latin and Cyrillic (e.g. ``be@latin``). * Added the ``name_translated`` attribute to the object returned by the :ttag:`get_language_info` template tag. Also added a corresponding template filter: :tfilter:`language_name_translated`. Management Commands ^^^^^^^^^^^^^^^^^^^ Loading docs/spelling_wordlist +1 −0 Original line number Diff line number Diff line Loading @@ -515,6 +515,7 @@ naturalday naturaltime nd needsinfo německy nestable neuroscientist newforms Loading docs/topics/i18n/translation.txt +11 −0 Original line number Diff line number Diff line Loading @@ -870,6 +870,11 @@ You can then access the information:: Name of language: {{ lang.name_local }}<br /> Name in English: {{ lang.name }}<br /> Bi-directional: {{ lang.bidi }} Name in the active language: {{ lang.name_translated }} .. versionadded:: 1.9 The ``name_translated`` attribute was added. .. templatetag:: get_language_info_list Loading Loading @@ -899,6 +904,7 @@ you can iterate over those languages in the template:: .. templatefilter:: language_name .. templatefilter:: language_name_local .. templatefilter:: language_bidi .. templatefilter:: language_name_translated Template filters ~~~~~~~~~~~~~~~~ Loading @@ -908,6 +914,11 @@ There are also simple filters available for convenience: * ``{{ LANGUAGE_CODE|language_name }}`` ("German") * ``{{ LANGUAGE_CODE|language_name_local }}`` ("Deutsch") * ``{{ LANGUAGE_CODE|language_bidi }}`` (False) * ``{{ LANGUAGE_CODE|language_name_translated }}`` ("německy", when active language is Czech) .. versionadded:: 1.9 The ``language_name_translated`` filter was added. .. _Django templates: ../templates_python/ Loading Loading
django/templatetags/i18n.py +8 −0 Original line number Diff line number Diff line Loading @@ -215,6 +215,7 @@ def do_get_language_info(parser, token): {% get_language_info for LANGUAGE_CODE as l %} {{ l.code }} {{ l.name }} {{ l.name_translated }} {{ l.name_local }} {{ l.bidi|yesno:"bi-directional,uni-directional" }} """ Loading @@ -238,6 +239,7 @@ def do_get_language_info_list(parser, token): {% for l in langs %} {{ l.code }} {{ l.name }} {{ l.name_translated }} {{ l.name_local }} {{ l.bidi|yesno:"bi-directional,uni-directional" }} {% endfor %} Loading @@ -253,6 +255,12 @@ def language_name(lang_code): return translation.get_language_info(lang_code)['name'] @register.filter def language_name_translated(lang_code): english_name = translation.get_language_info(lang_code)['name'] return translation.ugettext(english_name) @register.filter def language_name_local(lang_code): return translation.get_language_info(lang_code)['name_local'] Loading
django/utils/translation/__init__.py +8 −3 Original line number Diff line number Diff line Loading @@ -215,17 +215,22 @@ def get_language_info(lang_code): try: lang_info = LANG_INFO[lang_code] if 'fallback' in lang_info and 'name' not in lang_info: return get_language_info(lang_info['fallback'][0]) return lang_info info = get_language_info(lang_info['fallback'][0]) else: info = lang_info except KeyError: if '-' not in lang_code: raise KeyError("Unknown language code %s." % lang_code) generic_lang_code = lang_code.split('-')[0] try: return LANG_INFO[generic_lang_code] info = LANG_INFO[generic_lang_code] except KeyError: raise KeyError("Unknown language code %s and %s." % (lang_code, generic_lang_code)) if info: info['name_translated'] = ugettext_lazy(info['name']) return info trim_whitespace_re = re.compile('\s*\n\s*') Loading
docs/releases/1.9.txt +4 −0 Original line number Diff line number Diff line Loading @@ -187,6 +187,10 @@ Internationalization for languages which can be written in different scripts, for example Latin and Cyrillic (e.g. ``be@latin``). * Added the ``name_translated`` attribute to the object returned by the :ttag:`get_language_info` template tag. Also added a corresponding template filter: :tfilter:`language_name_translated`. Management Commands ^^^^^^^^^^^^^^^^^^^ Loading
docs/spelling_wordlist +1 −0 Original line number Diff line number Diff line Loading @@ -515,6 +515,7 @@ naturalday naturaltime nd needsinfo německy nestable neuroscientist newforms Loading
docs/topics/i18n/translation.txt +11 −0 Original line number Diff line number Diff line Loading @@ -870,6 +870,11 @@ You can then access the information:: Name of language: {{ lang.name_local }}<br /> Name in English: {{ lang.name }}<br /> Bi-directional: {{ lang.bidi }} Name in the active language: {{ lang.name_translated }} .. versionadded:: 1.9 The ``name_translated`` attribute was added. .. templatetag:: get_language_info_list Loading Loading @@ -899,6 +904,7 @@ you can iterate over those languages in the template:: .. templatefilter:: language_name .. templatefilter:: language_name_local .. templatefilter:: language_bidi .. templatefilter:: language_name_translated Template filters ~~~~~~~~~~~~~~~~ Loading @@ -908,6 +914,11 @@ There are also simple filters available for convenience: * ``{{ LANGUAGE_CODE|language_name }}`` ("German") * ``{{ LANGUAGE_CODE|language_name_local }}`` ("Deutsch") * ``{{ LANGUAGE_CODE|language_bidi }}`` (False) * ``{{ LANGUAGE_CODE|language_name_translated }}`` ("německy", when active language is Czech) .. versionadded:: 1.9 The ``language_name_translated`` filter was added. .. _Django templates: ../templates_python/ Loading