如何更新现有的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文件,保存已翻译的字符串(“昵称”,“错误的电子邮件”)?
答案 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中查看更多内容。