Hou*_*man 5 javascript django internationalization
我阅读并按照这里的说明进行操作,但似乎无法在po文件中看到javascript中的字符串.
structure of my project is:
cb/
cb_app
cb
static_files
templates
Run Code Online (Sandbox Code Playgroud)
首先我将这些复制到我的url.py中:
js_info_dict = {
'packages': ('cb_app',),
}
urlpatterns = patterns('',
(r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
)
Run Code Online (Sandbox Code Playgroud)
然后我将这个脚本添加到我的html中:
<script type="text/javascript" src="{% url django.views.i18n.javascript_catalog %}"></script>
Run Code Online (Sandbox Code Playgroud)
我希望获得翻译的实际脚本就是这样简单:
$(document).ready(function () {
$('#id_sales_item').chosen({no_results_text: gettext('No results match')});
});
Run Code Online (Sandbox Code Playgroud)
...并在相同的HTML中使用.
那还有什么我需要做的吗?
我所做的一切,然后是从运行下面两行cb/cb,并从cb/cb_app.
django-admin.py makemessages -l en_GB
Run Code Online (Sandbox Code Playgroud)
但仍处于要么没有"没有结果匹配"的迹象cb/cb/locale也没有cb/cb_app/locale
有小费吗?
我终于找到问题所在了。
该文档建议从 Django 项目创建一次消息,从 Django 应用程序创建一次消息。这样你最终会得到两个locale目录。无论如何,在这两种情况下,JavaScript 翻译都不会被获取。这真是一团糟。
我发现的最干净的解决方案是转到settings.py并插入此行(另请参阅上面的项目层次结构):
LOCALE_PATHS = ( '/home/kave/projects/cb/locale',)
Run Code Online (Sandbox Code Playgroud)
然后在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
Run Code Online (Sandbox Code Playgroud)
第一个命令从项目和应用程序子文件夹中获取翻译文本。第二个将 javascript 翻译成第二个 po 文件。
就是这样。
| 归档时间: |
|
| 查看次数: |
1729 次 |
| 最近记录: |