2011-11-13 57 views
4

我想为使用PyQt4以Python编写的应用程序添加多种语言支持。我一直在寻找如何添加多种语言的信息,并希望看到其他人如何做到这一点。使用PyQt4进行国际化的最佳实践

Here我读:

PyQt的行为是不能令人满意的,并可能在未来被改变。 建议QCoreApplication.translate()在 首选项中使用tr()(和trUtf8())。这可以保证与当前和未来的PyQt版本 配合使用,并且可以更轻松地在Python和C++代码之间共享 消息文件。

在由pyuic4生成的文件我看到:

WPopupCalendar.setWindowTitle(QtGui.QApplication.translate("WPopupCalendar", "Календарь", None, QtGui.QApplication.UnicodeUTF8)) 

这看起来太长了我。我正在考虑自己制作tr辅助函数,它会以某种方式自动执行该过程。

此外,我找不到描述工作流程和条件的文章,用python开发python多语言应用程序。

你能不能请教我一些很好的和方便的技术呢?

回答

1

只需使用tr(或trUtf8)随处可见。当您识别受多重继承问题影响的代码时(这很容易永远不会),只有在translate时才会打扰。

我建议你看看Qt的i18n overviewQt Linguist Manual。他们显然都面向C++项目,但它应该给你一个很清楚的想法。

对于一个工作示例,您还可以下载Eric Python IDE的源代码 - 它是用PyQt4编写的,并且支持半打或更多的语言。