我有一个小的python程序,展示了如何为Linux和Windows翻译GTK(pygobject)GUI。一切都在Linux中运行,但在Windows中,非ASCII符号不会在翻译中呈现。
我认为Glade文件和* .mo文件都被正确解码,因为:
以下是英文原版中的界面:
德语翻译不使用环境变量或PANGOCAIRO_BACKEND=win32
:
使用环境变量PANGOCAIRO_BACKEND=fontconfig
(PANGOCAIRO_BACKEND=fc
)的德语翻译。第一个标签设置为使用Pango使用Calibri。这肯定是Windows上“ö”,“ä”和“ü”的字体。
在控制台中,此警告会显示翻译:{{1}}。
这里已经讨论了有关使翻译工作的一些细节:
存储库:
Windows安装程序:
Pango-Warning **: Invalid UTF-8 string passed to pango_layout_set_text()
是否可能使用错误的编码推送翻译?可以调试这个,还是有人知道如何解决这个问题?
答案 0 :(得分:1)
您似乎正在使用Python2。Python2默认使用ASCII,但是您可以通过将其放在第一行来告诉它使用Unicode。
# -*- coding: utf-8 -*-
这可以节省您为每个字符串加上u
的前缀,如下所示,您可能会忘记这样做,从而可能会产生错误。
或者,如果您迁移到Python 3,则默认情况下它使用Unicode,因此您无需执行任何操作。
答案 1 :(得分:-1)
我通过制作所有字符串Unicode字符串来解决这个问题。要创建Unicode字符串,请执行以下操作:u'Unicode string with fünky charàcters'
。