Flask-Babel 无法提取 UTF-8 内容

Flask-Babel fail to extract UTF-8 content

我的一个 Jinja2 模板中有一个可翻译的字符串:

Project can’t end sooner than it starts

(注意“不能”中的 UTF-8 撇号。)

当我提取消息并更新我的翻译文件时,模板 (.pot) 和翻译 (.po) 文件都具有以下 msgid:

msgid "Project canât end sooner than it starts"

Babel 似乎“翻译”了 UTF-8 字符,就好像它们在某种 8 位字符集中一样。

我的 babel.cfg 真的很短:

[python: **.py]
[jinja2: **/templates/**.html]
extensions=jinja2.ext.autoescape,jinja2.ext.with_,webassets.ext.jinja2.AssetsExtension

有没有办法让 Babel 注意到模板已经是 UTF-8,而不是从它认为的任何字符集中转换它?我在 pybabel extract --helppybabel extract --help.

的帮助输出中看不到任何相关选项

我只使用 Python3,记录一下。

原来它是开箱即用的,只是似乎没有记录。我所要做的就是更改配置:

[python: **.py]
[jinja2: **/templates/**.html]
encoding=utf-8
extensions=jinja2.ext.autoescape,jinja2.ext.with_,webassets.ext.jinja2.AssetsExtension

encoding=utf-8 部分发挥了它的魔力,所有 HTML 文件现在都被视为 UTF-8 数据。