使用PyQt4进行国际化的最佳实践

我想为我的应用程序添加多语言支持,这是使用PyQt4用Python编写的.我一直在寻找有关如何添加多种语言的信息,并希望了解其他人如何做到这一点.

Here我看了:

The PyQt behaviour is unsatisfactory and may be changed in the future.
It is recommended that QCoreApplication.translate() be used in
preference to tr() (and trUtf8()). This is guaranteed to work with
current and future versions of PyQt and makes it much easier to share
message files between Python and C++ code.

在pyuic4生成的文件中,我看到如下内容:

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

这对我来说太长了.我正在考虑制作自己的tr辅助函数,以某种方式自动化该过程.

此外,我找不到描述工作流程的文章和使用pyqt4在python中开发多语言应用程序的细节.

你能用一些好的方便的技巧给我建议吗?

最佳答案
只需在每个地方使用tr(或trUtf8)即可.只有当您识别出受多重继承问题影响的代码时,才能轻松使用翻译(这很容易就永远不会).

我建议你看一下Qt的i18n overviewQt Linguist Manual.它们显然都面向C项目,但它应该让你清楚地知道需要什么.

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

转载注明原文:使用PyQt4进行国际化的最佳实践 - 代码日志