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 --help
和 pybabel 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 数据。
我的一个 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 --help
和 pybabel 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 数据。