我有一个在 Python 2.7.5 上使用 PyQt5 (Qt5.1.1) 开发的应用程序。该应用程序广泛使用使用from __future__ import unicode_literals
. 源代码已设置# -*- coding: utf-8 -*-
,因此 unicode 字符按原样写入源代码(无需转义)。
pylupdate5
在提取字符串并可以使用 Qt Linguist 进行翻译并重新应用的情况下,使用“作品”进行翻译。这适用于包含非 ASCII 字符和不包含非 ASCII 字符的字符串。但是,任何包含 unicode 字符的字符串最终都会在.ts
文件中包含乱码。例如,后跟省略号的“打开”输出为:
&Open…
单词后面的位是省略号字符 (E2 80 A6) 的 unicode 代码单元,尽管这â ¦
在 Qt Linguist 中出现。翻译它(并在翻译中输入正确的 unicode 可以正常工作)。用更正的 unicode替换文件â ¦
中.ts
的 会阻止生成的翻译工作,这表明tr
也看到了乱码版本。
那么这里发生了什么?