mirror of
https://github.com/django/django.git
synced 2025-10-24 14:16:09 +00:00
Fixed #22106 -- Allowed using more than one instance of javascript_catalog per project.
This commit is contained in:
committed by
Tim Graham
parent
556eb67701
commit
6bb2175ed6
17
tests/view_tests/templates/jsi18n-multi-catalogs.html
Normal file
17
tests/view_tests/templates/jsi18n-multi-catalogs.html
Normal file
@@ -0,0 +1,17 @@
|
||||
<html>
|
||||
<head>
|
||||
<script type="text/javascript" src="/jsi18n/app1/"></script>
|
||||
<script type="text/javascript" src="/jsi18n/app2/"></script>
|
||||
<body>
|
||||
<p id="app1string">
|
||||
<script type="text/javascript">
|
||||
document.write(gettext('this app1 string is to be translated'))
|
||||
</script>
|
||||
</p>
|
||||
<p id="app2string">
|
||||
<script type="text/javascript">
|
||||
document.write(gettext('this app2 string is to be translated'))
|
||||
</script>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,4 +1,6 @@
|
||||
# -*- coding:utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import gettext
|
||||
import json
|
||||
import os
|
||||
@@ -100,7 +102,7 @@ class I18NTests(TestCase):
|
||||
self.assertContains(response, json.dumps(trans_txt), 1)
|
||||
if lang_code == 'fr':
|
||||
# Message with context (msgctxt)
|
||||
self.assertContains(response, r'"month name\u0004May": "mai"', 1)
|
||||
self.assertContains(response, '"month name\\u0004May": "mai"', 1)
|
||||
|
||||
|
||||
@override_settings(ROOT_URLCONF='view_tests.urls')
|
||||
@@ -270,6 +272,16 @@ class JavascriptI18nTests(LiveServerTestCase):
|
||||
elem = self.selenium.find_element_by_id("npgettext_plur")
|
||||
self.assertEqual(elem.text, "455 Resultate")
|
||||
|
||||
@modify_settings(INSTALLED_APPS={'append': ['view_tests.app1', 'view_tests.app2']})
|
||||
@override_settings(LANGUAGE_CODE='fr')
|
||||
def test_multiple_catalogs(self):
|
||||
self.selenium.get('%s%s' % (self.live_server_url, '/jsi18n_multi_catalogs/'))
|
||||
|
||||
elem = self.selenium.find_element_by_id('app1string')
|
||||
self.assertEqual(elem.text, 'il faut traduire cette chaîne de caractères de app1')
|
||||
elem = self.selenium.find_element_by_id('app2string')
|
||||
self.assertEqual(elem.text, 'il faut traduire cette chaîne de caractères de app2')
|
||||
|
||||
|
||||
class JavascriptI18nChromeTests(JavascriptI18nTests):
|
||||
webdriver_class = 'selenium.webdriver.chrome.webdriver.WebDriver'
|
||||
|
||||
@@ -38,6 +38,16 @@ js_info_dict_admin = {
|
||||
'packages': ('django.contrib.admin', 'view_tests'),
|
||||
}
|
||||
|
||||
js_info_dict_app1 = {
|
||||
'domain': 'djangojs',
|
||||
'packages': ('view_tests.app1',),
|
||||
}
|
||||
|
||||
js_info_dict_app2 = {
|
||||
'domain': 'djangojs',
|
||||
'packages': ('view_tests.app2',),
|
||||
}
|
||||
|
||||
js_info_dict_app5 = {
|
||||
'domain': 'djangojs',
|
||||
'packages': ('view_tests.app5',),
|
||||
@@ -64,12 +74,15 @@ urlpatterns = [
|
||||
# i18n views
|
||||
url(r'^i18n/', include('django.conf.urls.i18n')),
|
||||
url(r'^jsi18n/$', i18n.javascript_catalog, js_info_dict),
|
||||
url(r'^jsi18n/app1/$', i18n.javascript_catalog, js_info_dict_app1),
|
||||
url(r'^jsi18n/app2/$', i18n.javascript_catalog, js_info_dict_app2),
|
||||
url(r'^jsi18n/app5/$', i18n.javascript_catalog, js_info_dict_app5),
|
||||
url(r'^jsi18n_english_translation/$', i18n.javascript_catalog, js_info_dict_english_translation),
|
||||
url(r'^jsi18n_multi_packages1/$', i18n.javascript_catalog, js_info_dict_multi_packages1),
|
||||
url(r'^jsi18n_multi_packages2/$', i18n.javascript_catalog, js_info_dict_multi_packages2),
|
||||
url(r'^jsi18n_admin/$', i18n.javascript_catalog, js_info_dict_admin),
|
||||
url(r'^jsi18n_template/$', views.jsi18n),
|
||||
url(r'^jsi18n_multi_catalogs/$', views.jsi18n_multi_catalogs),
|
||||
|
||||
# Static views
|
||||
url(r'^site_media/(?P<path>.*)$', static.serve, {'document_root': media_dir}),
|
||||
|
||||
@@ -82,6 +82,10 @@ def jsi18n(request):
|
||||
return render_to_response('jsi18n.html')
|
||||
|
||||
|
||||
def jsi18n_multi_catalogs(request):
|
||||
return render_to_response('jsi18n-multi-catalogs.html')
|
||||
|
||||
|
||||
def raises_template_does_not_exist(request, path='i_dont_exist.html'):
|
||||
# We need to inspect the HTML generated by the fancy 500 debug view but
|
||||
# the test client ignores it, so we send it explicitly.
|
||||
|
||||
Reference in New Issue
Block a user