Django makemessages未创建新添加的语言
我在我的Django应用中有12种语言,如果我运行这个命令:
python manage.py makemessages --all
它会为这12种语言创建所有的.po文件。现在我又添加了3种新语言:
LANGUAGES = (
...
('th', gettext('Thai')),
('tl', gettext('Tagalog')),
('vi', gettext('Vietnamese')),
)
当我运行makemessages --all
这个命令时,它却跳过了这三种新语言。我是不是漏掉了什么?
补充说明:也许文档有点难懂:
makemessages
django-admin makemessages
这个命令会遍历当前目录下的所有源代码,找出所有标记为需要翻译的字符串。它会在conf/locale(Django的文件夹)或locale(项目和应用的文件夹)中创建(或更新)一个消息文件。在对消息文件进行修改后,你需要用compilemessages命令来编译它们,以便与内置的gettext支持一起使用。详细信息请查看国际化(i18n)文档。
2 个回答
26
你第一次在命令行使用的时候,需要指定你感兴趣的语言。
python manage.py makemessages -l th -l tl -l vi
之后,如果你再用 --all
这个选项,就会为所有语言生成 PO 文件。