mirror of
https://github.com/django/django.git
synced 2024-12-23 01:25:58 +00:00
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:
|
||||
raise TypeError(key)
|
||||
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
|
||||
|
||||
@ -401,7 +401,7 @@ class JavaScriptCatalog(View):
|
||||
else:
|
||||
raise TypeError(key)
|
||||
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
|
||||
|
||||
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
|
||||
as if the database is unavailable (:ticket:`27567`).
|
||||
|
||||
* Fixed occasional missing plural forms in ``JavaScriptCatalog``
|
||||
(:ticket:`27418`).
|
||||
|
BIN
tests/view_tests/locale/pt/LC_MESSAGES/djangojs.mo
Normal file
BIN
tests/view_tests/locale/pt/LC_MESSAGES/djangojs.mo
Normal file
Binary file not shown.
27
tests/view_tests/locale/pt/LC_MESSAGES/djangojs.po
Normal file
27
tests/view_tests/locale/pt/LC_MESSAGES/djangojs.po
Normal file
@ -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"
|
||||
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.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):
|
||||
with override('en-gb'):
|
||||
response = self.client.get('/jsi18n/')
|
||||
|
@ -95,6 +95,18 @@ class JsI18NTests(SimpleTestCase):
|
||||
self.assertContains(response, 'il faut le traduire')
|
||||
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):
|
||||
with override('en-gb'):
|
||||
response = self.client.get('/old_jsi18n/')
|
||||
|
Loading…
Reference in New Issue
Block a user