此问题已在此处有答案:
PyQt4: Non-ASCII character detected in trUtf8 string(1个答案)
昨天关门了。
我尝试在pylupdate5中运行一些字符串(法语带重音,但所有文件都是utf8)的pylupdate5,以使用QCoreApplication.translate
进行翻译,但当我生成.ts
文件时,我得到了错误的字符串,例如:
<message>
<location filename="myfile.py" line="193"/>
<source>Créer une trajectoire</source>
<translation></translation>
</message>
而不是python代码中的字符串“Créer une trajectoire”。我想可能和这个question有关,但我不明白空间的问题,只有口音。当我在Qt Linguist中打开ts文件时,我遇到了同样的问题,即使相应的代码是正确的(就像在我的python IDE中一样)。
运行pylupdate5:
pylupdate5 myfile.py -ts myfile_en.ts
下面是我的代码:
# -*- coding: utf-8 -*-
from PyQt5.QtCore import QCoreApplication
def tr(message):
return QCoreApplication.translate('myproject', message)
tr("Créer une trajectoire")
我在macOS上使用Python 3.8和PyQt5。
1条答案
按热度按时间kd3sttzy1#
找到了我的.pro文件中缺少的部分,其中包含要翻译的所有脚本和UI文件:
CODECFORTR = UTF-8
,它告诉pylupdate5
如何解码原始字符串(默认为latin1,找到解释here)。我不知道如何在命令行中使用它来解析单个脚本,但对于.pro文件,它工作得很好。