返回介绍

提取文本进行翻译

发布于 2025-01-02 21:53:54 字数 1052 浏览 0 评论 0 收藏 0

一旦应用所有 _()_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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文