sol*_*iCe 3 translation pyqt internationalization
我正在使用pyqt和设计师.我用self.tr()+ pylupdate4和lrelease翻译了我的应用程序中的所有字符串
这是我的main()中的代码片段:
app = QtGui.QApplication(sys.argv)
app.setApplicationName('Mental Calculation')
# initialize locale and load translation files if available
locale = QtCore.QLocale()
LOCALENAME = str(locale.system().name())
translator = QtCore.QTranslator()
translator.load("mentalcalculation_%s" % LOCALENAME)
app.installTranslator(translator)
Run Code Online (Sandbox Code Playgroud)
我用QDialogButtonBox在QDialog的一个QtGui.QDialogButtonBox.Cancel和QtGui.QDialogButtonBox.Ok
并且这些按钮中的字符串未翻译.因为pylupdate4会为它们选择任何字符串.
我是否错过了应用中的配置步骤以便翻译?我不明白QDialogButtonBox的标准按钮的字符串是如何被翻译的,并且无法找到有关它的文档.
小智 10
使用以下方法设置按钮的文本:
buttonBox->button(QDialogButtonBox::Ok)->setText(tr("Ok"));
buttonBox->button(QDialogButtonBox::Cancel)->setText(tr("Cancel"));
Run Code Online (Sandbox Code Playgroud)
然后lupdate .ts文件,用语言学家打开它,你会找到字符串.
小智 5
为了以可移植的方式从 QT 加载本机翻译,您可以使用以下函数调用:
translator.load("qt_" + QLocale::system().name(),QLibraryInfo::location(QLibraryInfo::TranslationsPath));
Run Code Online (Sandbox Code Playgroud)
如果您想避免这种解决方法,则如前所述,两个(或更多)翻译器是标准方法。