我试过 follow the guide但还不够清楚。
我将其添加到我的 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将被翻译'));
在我的一个 js 文件中被提取到 djangojs.po
。
我运行了
django-admin.py compilemessages
并重新启动了服务器。将此添加到我的 base.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) { ....
为什么“this is to be translated”没有显示,它会根据什么显示特定语言而不用 URL 传递它?
最佳答案
我不知道如何解决你的问题,但我可以告诉你,事情对我来说是如何工作的:
locale
文件夹在我的 tickets
应用中。
网址.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
希望您能从中有所收获。
关于python - Django JavaScript 翻译不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19625102/