【发布时间】:2016-01-15 03:40:45
【问题描述】:
我在一个默认语言是法语的 Django 项目中工作。我也想支持英文。
国际化在 python 代码和模板代码中按我的预期工作:
- 当请求的语言是法语时(url 中有 /fr/),显示的文本是我的代码中的文本(在我的例子中是法语),即使在 locale/en/LC_MESSAGES/django 中有翻译.po(已编译成 django.mo)。
- 当请求的语言是英语时(url中有/en/)
- 如果 locale/en/LC_MESSAGES/django.po 中有翻译,则显示此翻译
- 如果没有,则显示我的代码中的“默认”文本
所以看来我不需要为我的基本语言创建和编译消息文件(对吗?)。
在 javascript 文件中,它的工作方式不同:只要有一个,它就会显示来自 locale/en/LC_MESSAGES/django.po 的翻译,即使请求的语言是法语也是如此。
阅读this thread后,我运行了命令:
django-admin makemessages -d djangojs -l fr
django-admin compilemessages
但我仍然得到英文翻译,除非我在 locale/fr/LC_MESSAGES/djangojs.po 中填写 msgstr。
我是否必须为我网站的每个文本填写基本语言的 msgstr(基本上复制/粘贴 msgid)?
这看起来很乏味。
【问题讨论】:
标签: javascript django internationalization