diff --git a/springboard/filters.py b/springboard/filters.py index 7909bc4..ad96b5d 100644 --- a/springboard/filters.py +++ b/springboard/filters.py @@ -53,8 +53,10 @@ def markdown_filter(ctx, content): @contextfilter def display_language_name_filter(ctx, locale): language_code, _, country_code = locale.partition('_') - term_code = languages.get(bibliographic=language_code).terminology - + try: + term_code = languages.get(bibliographic=language_code).terminology + except KeyError: + term_code = language_code try: return Locale.parse(term_code).language_name except UnknownLocaleError: diff --git a/springboard/tests/test_filters.py b/springboard/tests/test_filters.py index 74cbfbb..d3bda4c 100644 --- a/springboard/tests/test_filters.py +++ b/springboard/tests/test_filters.py @@ -77,3 +77,7 @@ def test_unknown_language_fallback(self): display_language_name_filter({}, 'kur_IQ'), 'Kurdish') self.assertEqual( display_language_name_filter({}, 'spa_ES'), u'espa\xf1ol') + self.assertEqual( + display_language_name_filter({}, 'ckb_IQ'), u'\u06a9\u0648\u0631' + u'\u062f\u06cc\u06cc ' + u'\u0646\u0627\u0648\u06d5\u0646\u062f\u06cc')