Fixed #27418 -- Fixed occasional missing plural forms in JavaScriptCatalog.
This commit is contained in:
parent
1e629928e9
commit
b24af2f405
|
@ -253,7 +253,7 @@ def get_javascript_catalog(locale, domain, packages):
|
||||||
else:
|
else:
|
||||||
raise TypeError(key)
|
raise TypeError(key)
|
||||||
for k, v in pdict.items():
|
for k, v in pdict.items():
|
||||||
catalog[k] = [v.get(i, '') for i in range(maxcnts[msgid] + 1)]
|
catalog[k] = [v.get(i, '') for i in range(maxcnts[k] + 1)]
|
||||||
|
|
||||||
return catalog, plural
|
return catalog, plural
|
||||||
|
|
||||||
|
@ -401,7 +401,7 @@ class JavaScriptCatalog(View):
|
||||||
else:
|
else:
|
||||||
raise TypeError(key)
|
raise TypeError(key)
|
||||||
for k, v in pdict.items():
|
for k, v in pdict.items():
|
||||||
catalog[k] = [v.get(i, '') for i in range(maxcnts[msgid] + 1)]
|
catalog[k] = [v.get(i, '') for i in range(maxcnts[k] + 1)]
|
||||||
return catalog
|
return catalog
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
|
|
|
@ -11,3 +11,6 @@ Bugfixes
|
||||||
|
|
||||||
* Fixed a crash in the debug view if ``request.user`` can't be retrieved, such
|
* Fixed a crash in the debug view if ``request.user`` can't be retrieved, such
|
||||||
as if the database is unavailable (:ticket:`27567`).
|
as if the database is unavailable (:ticket:`27567`).
|
||||||
|
|
||||||
|
* Fixed occasional missing plural forms in ``JavaScriptCatalog``
|
||||||
|
(:ticket:`27418`).
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,27 @@
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2007-09-15 19:15+0200\n"
|
||||||
|
"PO-Revision-Date: 2010-05-12 12:41-0300\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
msgid "{count} plural2"
|
||||||
|
msgid_plural "{count} plural2s"
|
||||||
|
msgstr[0] "{count} plural2"
|
||||||
|
msgstr[1] "{count} plural2s"
|
||||||
|
|
||||||
|
msgid "{count} plural3"
|
||||||
|
msgid_plural "{count} plural3s"
|
||||||
|
msgstr[0] "{count} plural3"
|
||||||
|
msgstr[1] "{count} plural3s"
|
Binary file not shown.
|
@ -22,3 +22,16 @@ msgstr "перевод"
|
||||||
|
|
||||||
msgid "Choose a time"
|
msgid "Choose a time"
|
||||||
msgstr "Выберите время"
|
msgstr "Выберите время"
|
||||||
|
|
||||||
|
|
||||||
|
msgid "{count} plural2"
|
||||||
|
msgid_plural "{count} plural2s"
|
||||||
|
msgstr[0] ""
|
||||||
|
msgstr[1] ""
|
||||||
|
msgstr[2] ""
|
||||||
|
|
||||||
|
msgid "{count} plural3"
|
||||||
|
msgid_plural "{count} plural3s"
|
||||||
|
msgstr[0] "{count} plural3 p3"
|
||||||
|
msgstr[1] "{count} plural3 p3s"
|
||||||
|
msgstr[2] "{count} plural3 p3t"
|
||||||
|
|
|
@ -314,6 +314,18 @@ class JsI18NTests(SimpleTestCase):
|
||||||
self.assertContains(response, 'il faut le traduire')
|
self.assertContains(response, 'il faut le traduire')
|
||||||
self.assertNotContains(response, "Untranslated string")
|
self.assertNotContains(response, "Untranslated string")
|
||||||
|
|
||||||
|
def test_i18n_fallback_language_plural(self):
|
||||||
|
"""
|
||||||
|
The fallback to a language with less plural forms maintains the real
|
||||||
|
language's number of plural forms.
|
||||||
|
"""
|
||||||
|
with self.settings(LANGUAGE_CODE='pt'), override('ru'):
|
||||||
|
response = self.client.get('/jsi18n/')
|
||||||
|
self.assertEqual(
|
||||||
|
response.context['catalog']['{count} plural3'],
|
||||||
|
['{count} plural3', '{count} plural3s', '{count} plural3 p3t']
|
||||||
|
)
|
||||||
|
|
||||||
def test_i18n_english_variant(self):
|
def test_i18n_english_variant(self):
|
||||||
with override('en-gb'):
|
with override('en-gb'):
|
||||||
response = self.client.get('/jsi18n/')
|
response = self.client.get('/jsi18n/')
|
||||||
|
|
|
@ -95,6 +95,18 @@ class JsI18NTests(SimpleTestCase):
|
||||||
self.assertContains(response, 'il faut le traduire')
|
self.assertContains(response, 'il faut le traduire')
|
||||||
self.assertNotContains(response, "Untranslated string")
|
self.assertNotContains(response, "Untranslated string")
|
||||||
|
|
||||||
|
def test_i18n_fallback_language_plural(self):
|
||||||
|
"""
|
||||||
|
The fallback to a language with less plural forms maintains the real
|
||||||
|
language's number of plural forms.
|
||||||
|
"""
|
||||||
|
with self.settings(LANGUAGE_CODE='pt'), override('ru'):
|
||||||
|
response = self.client.get('/jsi18n/')
|
||||||
|
self.assertEqual(
|
||||||
|
response.context['catalog']['{count} plural3'],
|
||||||
|
['{count} plural3', '{count} plural3s', '{count} plural3 p3t']
|
||||||
|
)
|
||||||
|
|
||||||
def test_i18n_english_variant(self):
|
def test_i18n_english_variant(self):
|
||||||
with override('en-gb'):
|
with override('en-gb'):
|
||||||
response = self.client.get('/old_jsi18n/')
|
response = self.client.get('/old_jsi18n/')
|
||||||
|
|
Loading…
Reference in New Issue