Перевод JavaScript Django не работает
пробовал следовать инструкции но это недостаточно ясно.
-
я добавил Это к моему urls.py
urlpatterns = patterns('', (r'^jsi18n/(?P<packages>S+?)/$', 'django.views.i18n.javascript_catalog'), )
-
сгенерировал файлы lang с помощью этой команды:
django-admin.py makemessages -d djangojs -l fr
root_folder/locale/fr/LC_MESSAGES
теперь содержать django.po
& djangojs.po
и alert(gettext('this is to be translated'));
в одном из моих файлов js был подобран в djangojs.po
.
Я побежал
django-admin.py compilemessages
и перезагрузки сервер.-
добавил Это к моей базе.HTML-код:
<script type="text/javascript" src="{% url 'django.views.i18n.javascript_catalog' 'locale' %}" >< /script >
обратите внимание, что я добавил "locale", чтобы избежать исключения не передавать имя пакета при динамической загрузке переводов.
-
посетил
/jsi18n/locale/
из моего браузера и все, что я получаю, это функции перевода Django:/* gettext library */ var catalog = new Array(); function pluralidx(count) { return (count == 1) ? 0 : 1; } function gettext(msgid) { ....
почему "это должно быть переведено" не отображается и на каком основании он покажет конкретный язык без передачи его с URL?
2 ответов
Я не знаю, как решить вашу проблему, но я могу сказать вам, как вещи работают для меня:
на locale
папка находится внутри моего tickets
app.
urls.py
js_info_dict = {
'domain': 'djangojs',
'packages': ('tickets',),
}
urlpatterns = patterns('',
(r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
...
базы.HTML-код
<script type="text/javascript" src="{% url django.views.i18n.javascript_catalog %}"></script>
и создать файл сообщения:
python -m django-admin makemessages -d djangojs -l fr
python -m django-admin compilemessages
надеюсь, вы можете забрать что-то из этого.
для других с моим конкретным случаем сообщения js генерируются и компилируются нормально, но не отображаются в шаблонах или страницах при использовании URL-адресов языка i18n.
это потому, что каталог javascript должен быть добавлен к шаблонам urls i18n, а не к обычным шаблонам.
urlpatterns += patterns('', (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), )
=>
urlpatterns += i18n_patterns('', (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), )