使用Linux Fedora和PyCharm都是英文版本
1,我正在使用 i18n 内置 Django 翻译内容。 当我编写 python manage.pycompilemessages 时,我得到:
'latin-1' codec can't encode character '\u201c' in position 5: ordinal not in range(256)
This '\u20ic' refers to Double quotes. The file to translate has double quotes.
xkbcommon: ERROR: /usr/share/X11/locale/iso8859-1/Compose:49:29: string literal is not a valid UTF-8 string
我去检查 PyCharm 中的文件编码,很反感地发现它不是 UTF-8,而是一些 ascii 变体。我更改为 UTF-8 但没有任何反应,我无法编译 .po 文件中的消息
这是 Django 文件的一个片段,因为它有双引号,所以无法编译
#: scaffoldapp/templates/index.html:279
msgid "Life is life."
msgstr "la vida es la vida"
#: templates/account/account_inactive.html:5
#: templates/account/account_inactive.html:8
msgid "Account Inactive"
msgstr ""
我已经在上面解释了我尝试过的事情
这不是因为它有双引号,而是因为引号不是unicode引号,而是
“
。您应该搜索 “
(也可能是反引号),然后将其替换为 "
。
例如,使用 sed 您可以使用:
sed -E -i 's/“/"/g' *.mo
很可能,
201d
(”
)也应该做同样的事情:
sed -E -i 's/”/"/g' *.mo