Loading django/utils/translation/trans_real.py +2 −1 Original line number Diff line number Diff line Loading @@ -104,7 +104,6 @@ class DjangoTranslation(gettext_module.GNUTranslations): self.__language = language self.__to_language = to_language(language) self.__locale = to_locale(language) self.plural = lambda n: int(n != 1) self._init_translation_catalog() self._add_installed_apps_translations() Loading Loading @@ -132,6 +131,7 @@ class DjangoTranslation(gettext_module.GNUTranslations): # provides merge support for NullTranslations() translation._catalog = {} translation._info = {} translation.plural = lambda n: int(n != 1) return translation def _init_translation_catalog(self): Loading @@ -144,6 +144,7 @@ class DjangoTranslation(gettext_module.GNUTranslations): # gettext will raise an IOError (refs #18192). use_null_fallback = False translation = self._new_gnu_trans(localedir, use_null_fallback) self.plural = translation.plural self._info = translation._info.copy() self._catalog = translation._catalog.copy() Loading tests/i18n/tests.py +11 −1 Original line number Diff line number Diff line Loading @@ -30,7 +30,7 @@ from django.utils.translation import ( get_language, get_language_from_request, get_language_info, gettext, gettext_lazy, ngettext_lazy, npgettext, npgettext_lazy, pgettext, pgettext_lazy, string_concat, to_locale, trans_real, ugettext, ugettext_lazy, ungettext_lazy, ugettext_lazy, ungettext, ungettext_lazy, ) from .forms import CompanyForm, I18nForm, SelectDateForm Loading @@ -57,6 +57,16 @@ def patch_formats(lang, **settings): class TranslationTests(TestCase): @translation.override('fr') def test_plural(self): """ Test plurals with ungettext. French differs from English in that 0 is singular. """ self.assertEqual(ungettext("%d year", "%d years", 0) % 0, "0 année") self.assertEqual(ungettext("%d year", "%d years", 2) % 2, "2 années") self.assertEqual(ungettext("%(size)d byte", "%(size)d bytes", 0) % {'size': 0}, "0 octet") self.assertEqual(ungettext("%(size)d byte", "%(size)d bytes", 2) % {'size': 2}, "2 octets") def test_override(self): activate('de') try: Loading Loading
django/utils/translation/trans_real.py +2 −1 Original line number Diff line number Diff line Loading @@ -104,7 +104,6 @@ class DjangoTranslation(gettext_module.GNUTranslations): self.__language = language self.__to_language = to_language(language) self.__locale = to_locale(language) self.plural = lambda n: int(n != 1) self._init_translation_catalog() self._add_installed_apps_translations() Loading Loading @@ -132,6 +131,7 @@ class DjangoTranslation(gettext_module.GNUTranslations): # provides merge support for NullTranslations() translation._catalog = {} translation._info = {} translation.plural = lambda n: int(n != 1) return translation def _init_translation_catalog(self): Loading @@ -144,6 +144,7 @@ class DjangoTranslation(gettext_module.GNUTranslations): # gettext will raise an IOError (refs #18192). use_null_fallback = False translation = self._new_gnu_trans(localedir, use_null_fallback) self.plural = translation.plural self._info = translation._info.copy() self._catalog = translation._catalog.copy() Loading
tests/i18n/tests.py +11 −1 Original line number Diff line number Diff line Loading @@ -30,7 +30,7 @@ from django.utils.translation import ( get_language, get_language_from_request, get_language_info, gettext, gettext_lazy, ngettext_lazy, npgettext, npgettext_lazy, pgettext, pgettext_lazy, string_concat, to_locale, trans_real, ugettext, ugettext_lazy, ungettext_lazy, ugettext_lazy, ungettext, ungettext_lazy, ) from .forms import CompanyForm, I18nForm, SelectDateForm Loading @@ -57,6 +57,16 @@ def patch_formats(lang, **settings): class TranslationTests(TestCase): @translation.override('fr') def test_plural(self): """ Test plurals with ungettext. French differs from English in that 0 is singular. """ self.assertEqual(ungettext("%d year", "%d years", 0) % 0, "0 année") self.assertEqual(ungettext("%d year", "%d years", 2) % 2, "2 années") self.assertEqual(ungettext("%(size)d byte", "%(size)d bytes", 0) % {'size': 0}, "0 octet") self.assertEqual(ungettext("%(size)d byte", "%(size)d bytes", 2) % {'size': 2}, "2 octets") def test_override(self): activate('de') try: Loading