use*_*936 2 python babel flask
如何更新现有的messages.pot文件?例如,我已经翻译了messages.pot文件:
....
#: forms.py:11
msgid "Nickname"
msgstr "???"
#: forms.py:18
msgid "Wrong email"
msgstr "???????????? ??????"
....
Run Code Online (Sandbox Code Playgroud)
如果我用选择器gettext标记新文本,例如:
flash(gettext('Login successful'))
Run Code Online (Sandbox Code Playgroud)
并运行:
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 ""
....
Run Code Online (Sandbox Code Playgroud)
那么,如何更新现有的messages.pot文件,保存已翻译的字符串("昵称","错误的电子邮件")?
tbi*_*icr 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
Run Code Online (Sandbox Code Playgroud)
获取所有字符串进行翻译:
pybabel extract -F babel.cfg -o messages.pot .
Run Code Online (Sandbox Code Playgroud)
到初始化po文件(第一次):
pybabel init -i messages.pot -d . -l ru
Run Code Online (Sandbox Code Playgroud)
要更新存在的po文件:
pybabel update -i messages.pot -d .
Run Code Online (Sandbox Code Playgroud)
要将po文件编译为mo:
pybabel compile -f -d .
Run Code Online (Sandbox Code Playgroud)
查看更多的文档.
| 归档时间: |
|
| 查看次数: |
3260 次 |
| 最近记录: |