由gettext生成的阿拉伯字符串在Qt UI中显示为乱码

时间:2015-03-16 07:22:47

标签: python qt pyside arabic

我正在使用Qt4和pyside开发多语言界面。语言对主体形式起了罚款。

我使用了两种方式进行本地化:

  1. Qt UI文件的Qt tr函数
  2. 用于python脚本和Jinja2 html模板的Gettext
  3. 当我使用gettext翻译字符串显示Qt对话框时,阿拉伯字符串显示为乱码。

    产生问题的代码:

    mb = QtGui.QMessageBox(QtGui.QMessageBox.Warning, _(u"Applying skin"), _(u"You should restart application in order for the skin to take effect"), buttons = QtGui.QMessageBox.Ok)
    ret = mb.exec_()
    

1 个答案:

答案 0 :(得分:0)

我自己无法测试,但请尝试:

gettext.install('myapp', unicode=True)

如果这不起作用,请尝试:

_ = gettext.translation('myapp').ugettext

问题似乎是Python2中的默认值是gettext返回bytes而不是unicode