我阅读并按照here中的说明进行操作,但似乎无法在po文件中看到javascript中的字符串.
structure of my project is:
cb/
cb_app
cb
static_files
templates
首先我将这些复制到我的url.py中:
js_info_dict = {
'packages': ('cb_app',),}
urlpatterns = patterns('',(r'^jsi18n/$','django.views.i18n.javascript_catalog',js_info_dict),)
然后我将这个脚本添加到我的html中:
我希望获得翻译的实际脚本就是这样简单:
$(document).ready(function () {
$('#id_sales_item').chosen({no_results_text: gettext('No results match')});
});
…并在相同的HTML中使用.
那还有什么我需要做的吗?
我所做的就是从cb / cb和cb / cb_app运行下面的一行.
django-admin.py makemessages -l en_GB
但仍然没有cb / cb / locale和cb / cb_app / locale中“无结果匹配”的迹象
有小费吗?
最佳答案
我终于找到了问题.
文档建议从Django项目创建一次消息,从Django app创建一次消息.这样你就得到了两个locale目录.而且无论如何都不会提到javascript翻译.这太乱了.
我找到的最干净的解决方案是转到settings.py并插入此行(另请参阅上面的项目层次结构):
LOCALE_PATHS = ( '/home/kave/projects/cb/locale',)
然后在project-root-directory中创建一个名为locale的目录(参见上面的路径)
不要忘记将条目应用到url.py和html中(参见上文).
最后,现在将本地统一到一个地方,转到project-root-directory:/ home / kave / projects / cb并运行以下两个命令:
django-admin.py makemessages -l en_GB
django-admin.py makemessages -d djangojs -l en_GB
第一个命令从项目和app子文件夹中获取翻译文本.
第二个将javascript翻译成第二个po文件.
而已.