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

4
我想为我的Python应用程序添加多语言支持,使用的是PyQt4。我正在寻找有关如何添加多种语言的信息,并希望看看其他人是如何做到这一点的。
这里我读到:

PyQt的行为不尽如人意,可能会在未来发生变化。 建议使用QCoreApplication.translate()而不是tr()(和trUtf8())。 这可以保证在PyQt的当前和未来版本中正常工作,并且使Python和C++代码之间共享消息文件更加容易。

在由pyuic4生成的文件中,我看到了类似以下的内容:
WPopupCalendar.setWindowTitle(QtGui.QApplication.translate("WPopupCalendar", "Календарь", None, QtGui.QApplication.UnicodeUTF8))

这对我来说看起来太长了。我在考虑制作自己的tr助手函数,以某种方式自动化该过程。
此外,我找不到描述使用pyqt4在Python中开发多语言应用程序的工作流程和细节的文章。
请您向我提供一些关于这方面的好的和方便的技术建议吗?
1个回答

1

只需始终使用tr(或trUtf8)来开始。只有在您确定受多重继承问题影响的代码时才会使用translate(这可能根本不会发生)。

我建议您查看Qt的i18n概述Qt Linguist手册。它们显然都面向C++项目,但应该可以让您对所需内容有很清晰的了解。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接