Fixed #26705 -- Fixed plural versions of languages not supported by Django.

This commit is contained in:
Thejaswi Puthraya 2016-06-07 18:32:42 +05:30 committed by Tim Graham
parent c4980e28e5
commit c8d2120b06
2 changed files with 16 additions and 0 deletions

View File

@ -113,6 +113,9 @@ class DjangoTranslation(gettext_module.GNUTranslations):
self.__to_language = to_language(language)
self.__locale = to_locale(language)
self._catalog = None
# If a language doesn't have a catalog, use the Germanic default for
# pluralization: anything except one is pluralized.
self.plural = lambda n: int(n != 1)
if self.domain == 'django':
if localedirs is not None:

View File

@ -1925,3 +1925,16 @@ class NonDjangoLanguageTests(SimpleTestCase):
def test_non_django_language(self):
self.assertEqual(get_language(), 'xxx')
self.assertEqual(ugettext("year"), "reay")
@override_settings(
USE_I18N=True,
LANGUAGES=[
('en-us', 'English'),
# xyz language has no locale files
('xyz', 'XYZ'),
],
)
@translation.override('xyz')
def test_plural_non_django_language(self):
self.assertEqual(get_language(), 'xyz')
self.assertEqual(ungettext('year', 'years', 2), 'years')