[英]Django JavaScript translation not working
我试图按照指南进行操作,但还不够清楚。
我把它添加到我的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 >
请注意,我添加了“locale”以避免在动态加载翻译时未传递包名称的例外。
访问/jsi18n/locale/
从我的浏览器,我得到的是Django翻译功能:
/* gettext library */ var catalog = new Array(); function pluralidx(count) { return (count == 1) ? 0 : 1; } function gettext(msgid) { ....
为什么'这是要被翻译'没有显示,在哪个基础上它将显示一个特定的语言而不传递它的URL?
我不知道如何解决你的问题,但我可以告诉你,事情对我有用:
locale
文件夹位于我的tickets
应用程序中。
urls.py
js_info_dict = {
'domain': 'djangojs',
'packages': ('tickets',),
}
urlpatterns = patterns('',
(r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
...
base.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
希望你能从中汲取一些东西。
对于具有我特定情况的其他人,当您使用i18n语言网址时,js消息会生成并编译为OK,但不会在模板或页面中呈现。
这是因为javascript目录应该添加到i18n urls模式,而不是正常模式。
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), )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.