Flask-Babel更新现有的messages.pot文件

时间:2013-09-16 07:20:47

标签: python flask babel

如何更新现有的messages.pot文件? 例如,我已经翻译了messages.pot文件:

....
#: forms.py:11
msgid "Nickname"
msgstr "Имя"

#: forms.py:18
msgid "Wrong email"
msgstr "Неправильный пароль"
....

如果我用选择器gettext标记新文本,例如:

flash(gettext('Login successful'))

并运行: pybabel extract -F babel.cfg -o messages.pot
我将收到一个新的messages.po文件:

    ....
#: forms.py:11
msgid "Nickname"
msgstr ""

#: forms.py:18
msgid "Wrong email"
msgstr ""

#: models.py:783
msgid "Login successful"
msgstr ""
....

那么,我如何更新现有的messages.pot文件,保存已翻译的字符串(“昵称”,“错误的电子邮件”)?

1 个答案:

答案 0 :(得分:11)

pot文件不用于翻译,它只列出了没有特定语言的所有翻译字符串。

对于使用po的真实翻译 - 文本文件和mo - 带翻译的二进制文件。将为您需要的任何语言创建此文件。看我的文件结构:

translations/
translations/ru/
translations/ru/LC_MESSAGES/
translations/ru/LC_MESSAGES/messages.mo
translations/ru/LC_MESSAGES/messages.po
translations/messages.pot

获取所有字符串进行翻译:

pybabel extract -F babel.cfg -o messages.pot .

初始化po文件(第一次):

pybabel init -i messages.pot -d . -l ru

更新存在的po文件:

pybabel update -i messages.pot -d .

po文件编译为mo

pybabel compile -f -d .

documentation中查看更多内容。