文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
提取文本进行翻译
一旦应用所有 _()
和 _l()
都到位了,你可以使用 pybabel
命令将它们提取到一个 .pot 文件中,该文件代表 可移植对象模板 。 这是一个文本文件,其中包含所有标记为需要翻译的文本。 这个文件的目的是作为一个模板来为每种语言创建翻译文件。
提取过程需要一个小型配置文件,告诉 pybabel 哪些文件应该被扫描以获得可翻译的文本。 下面你可以看到我为这个应用创建的 babel.cfg :
babel.cfg :PyBabel 配置文件。
[python: app/**.py]
[jinja2: app/templates/**.html]
extensions=jinja2.ext.autoescape,jinja2.ext.with_
前两行分别定义了 Python 和 Jinja2 模板文件的文件名匹配模式。 第三行定义了 Jinja2 模板引擎提供的两个扩展,以帮助 Flask-Babel 正确解析模板文件。
可以使用以下命令来将所有文本提取到 .pot 文件:
(venv) $ pybabel extract -F babel.cfg -k _l -o messages.pot .
pybabel extract
命令读取 -F
选项中给出的配置文件,然后从命令给出的目录(当前目录或本处的 .
)扫描与配置的源匹配的目录中的所有代码和模板文件。 默认情况下, pybabel
将查找 _()
以作为文本标记,但我也使用了重命名为 _l()
的延迟版本,所以我需要用 -k _l
来告诉该工具也要查找它 。 -o
选项提供输出文件的名称。
我应该注意, messages.pot 文件不需要合并到项目中。 这是一个只要再次运行上面的命令,就可以在需要时轻松地重新生成的文件。 因此,不需要将该文件提交到源代码管理。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论