PyQt5 unicode 翻译:pylupdate5 输出转义序列

Posted

技术标签:

【中文标题】PyQt5 unicode 翻译:pylupdate5 输出转义序列【英文标题】:PyQt5 unicode translation: pylupdate5 outputs escape sequences 【发布时间】:2013-10-03 10:29:01 【问题描述】:

我有一个在 Python 2.7.5 上使用 PyQt5 (Qt5.1.1) 开发的应用程序。该应用程序广泛使用使用from __future__ import unicode_literals 启用的Unicode 字符串。源代码设置为# -*- coding: utf-8 -*-,因此 unicode 字符按原样写入源代码(无需转义)。

使用pylupdate5 'works' 的翻译,只要字符串被提取并且可以使用Qt Linguist 翻译并重新应用。这适用于包含非 ASCII 字符和不包含非 ASCII 字符的字符串。但是,任何包含 unicode 字符的字符串最终都会在 .ts 文件中包含乱码。例如,后跟省略号的“打开”输出为:

&Open…

单词后面的位是省略号字符 (E2 80 A6) 的 unicode 代码单元,尽管这在 Qt Linguist 中显示为 â ¦。翻译它(并在翻译中输入正确的 unicode 可以正常工作)。用更正后的 unicode 替换 .ts 文件中的 â ¦ 会阻止生成的翻译工作,这表明 tr 也看到了乱码版本。

那么这里发生了什么?

【问题讨论】:

【参考方案1】:

我对此几乎没有经验,但是查看我生成的一个 .ts 文件,第一行是 并且 BBEdit 确认它是 utf -8 编码。在这种情况下,应正确显示非拉丁 1 字符。事实上,我只是在 .ts 文件中的一个字符串中编辑了一个省略号,然后在 Linguist 中打开它并正确显示。所以它可能只是源文件或 .ts 文件的文件编码的情况。

【讨论】:

以上是关于PyQt5 unicode 翻译:pylupdate5 输出转义序列的主要内容,如果未能解决你的问题,请参考以下文章

pyqt5应用程序中对话框和主窗口的国际化(翻译)

unicode编码系统翻译为什么有些在微信翻译不了

PyQt5中文手册

unicode汉语翻译是啥意思

是否有Unicode字符名称的标准化翻译?

pyqt5——绘图