翻译 Django 并推送到 bitbucket 时的字符编码

问题描述 投票:0回答:1

使用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.
  1. 当我推送到 bitbucket 时,即使它确实推送了它,我也会收到此消息

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 ""

我已经在上面解释了我尝试过的事情

django linux pycharm
1个回答
0
投票

这不是因为它有双引号,而是因为引号不是unicode引号,而是

。您应该搜索
(也可能是反引号),然后将其替换为
"

例如,使用 sed 您可以使用:

sed -E -i 's/“/"/g' *.mo

很可能,

201d
)也应该做同样的事情:

sed -E -i 's/”/"/g' *.mo
© www.soinside.com 2019 - 2024. All rights reserved.