Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge pull request #777 from khalas/ticket_19811

Fixed #19811 - Added language code fallback in get_language_info
  • Loading branch information...
commit 0ad76843b5032af52022adff7b676db633ce8b7e 2 parents f3ae67a + 6bd6a56
@HonzaKral HonzaKral authored
View
6 django/utils/translation/__init__.py
@@ -187,4 +187,10 @@ def get_language_info(lang_code):
try:
return LANG_INFO[lang_code]
except KeyError:
+ if '-' in lang_code:
+ splited_lang_code = lang_code.split('-')[0]
+ try:
+ return LANG_INFO[splited_lang_code]
+ except KeyError:
+ raise KeyError("Unknown language code %r and %r." % (lang_code, splited_lang_code))
raise KeyError("Unknown language code %r." % lang_code)
View
15 tests/regressiontests/i18n/tests.py
@@ -956,6 +956,21 @@ def test_localized_language_info(self):
self.assertEqual(li['name'], 'German')
self.assertEqual(li['bidi'], False)
+ def test_unknown_language_code(self):
+ with self.assertRaisesRegexp(KeyError, "Unknown language code u\'xx\'."):
+ get_language_info('xx')
+
+ def test_unknown_only_country_code(self):
+ li = get_language_info('de-xx')
+ self.assertEqual(li['code'], 'de')
+ self.assertEqual(li['name_local'], 'Deutsch')
+ self.assertEqual(li['name'], 'German')
+ self.assertEqual(li['bidi'], False)
+
+ def test_unknown_language_code_and_country_code(self):
+ with self.assertRaisesRegexp(KeyError, "Unknown language code u\'xx-xx\' and u\'xx\'."):
+ get_language_info('xx-xx')
+
class MultipleLocaleActivationTests(TestCase):
"""
Please sign in to comment.
Something went wrong with that request. Please try again.