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 输出转义序列的主要内容,如果未能解决你的问题,请参考以下文章