PyQt的:翻译标准按钮
-
19-09-2019 - |
题
我怎样才能轻松地翻译标准按钮(是,否)从QMessageBox提示?我不能对这些参数使用self.tr,所以我想实现它在其他一些简单的方法。我一定要使用整个翻译系统?
解决方案
下面是如何我:
首先,你需要的qt_LOCALE.qm
文件复制到你的应用程序目录。矿是:
cp /usr/share/qt4/translations/qt_fr.qm .
其次,你需要加载一个翻译为您的应用程序。
application = QApplication(argv)
locale = QLocale.system().name()
qtTranslator = QTranslator()
if qtTranslator.load("qt_"+locale):
application.installTranslator(qtTranslator)
main_window = QMainWindow()
main_window.show()
exit(application.exec_())
其他提示
您确定您有他们自己翻译?在其他的工具包,标准按钮被自动转换到用户使用的语言。
的最快方式是这样的:
mymessagebox.button(mymessagebox.Yes).setText("Yes, please!")
mymessagebox.button(mymessagebox.No).setText("No, thanks.")
对于所有可能的标准按钮的见QMessageBox提示文档。
如果你想有是/否转换为当前的语言,通常设置系统语言就足够了。否则,与Natim的建议尝试。
如果您想自定义文本:静态方法,如问题()等不允许的自定义按钮文本。这是不幸的,因为“是” /“否”的对话被认为是不好的风格(他们不是描述性的,人们必须读取整个消息,它容易让人误会是什么意思是什么意思,并没有否定意外它们)。对于自定义文本,你必须直接使用QMessageBox提示。我建议编写自己的静态方法接受可选的按钮文本。
不隶属于 StackOverflow