我试图按照指南进行操作,但还不够清楚。
我将此添加到我的 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
并重新启动了服务器。将此添加到我的 base.html:
<script type="text/javascript" src="{% url 'django.views.i18n.javascript_catalog' 'locale' %}" >< /script >
请注意,我添加了“语言环境”以避免在动态加载翻译时不传递包名的异常。
从我的浏览器访问
/jsi18n/locale/
,我得到的只是 Django 翻译功能:/* gettext library */ var catalog = new Array(); function pluralidx(count) { return (count == 1) ? 0 : 1; } function gettext(msgid) { ....
为什么“这将被翻译”没有显示,在什么基础上它将显示特定语言而不将其与 URL 一起传递?