Subj:有可能吗?例如,我可以将QtGui.QFileDialog().getSaveFileName()
按钮“保存”翻译为“Conservare”,将“取消”翻译为“Ignorare”吗?是否可以在不发明速度的情况下基于QFileDialog/QFontDialog
创建我的课程?
有人说,这些函数将始终被翻译,具体取决于os系统区域设置。不要相信,我的俄语版OpenSUSE说这是谎言。 :-)俄罗斯Windows 7有这样的行为。我在系统上看到的所有字符串都是英文的。我不是民族主义者,但我想在其他语言中使用字符串。 :-)谢谢!
答案 0 :(得分:2)
标准Qt安装应该包含20个左右的Qt库本身的翻译文件。
关于如何使用它们的解释可以在Qt i18n文档的this section中找到。
这是一个基本的PyQt4示例:
from PyQt4 import QtGui, QtCore
class Window(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.buttons = QtGui.QDialogButtonBox(self)
button = self.buttons.addButton(QtGui.QDialogButtonBox.Open)
button.clicked.connect(self.handleOpen)
button = self.buttons.addButton(QtGui.QDialogButtonBox.Close)
button.clicked.connect(self.close)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.buttons)
def handleOpen(self):
dialog = QtGui.QFileDialog()
dialog.exec_()
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
translator = QtCore.QTranslator()
if len(sys.argv) > 1:
locale = sys.argv[1]
else:
locale = QtCore.QLocale.system().name()
translator.load('qt_%s' % locale,
QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.TranslationsPath))
app.installTranslator(translator)
window = Window()
window.show()
sys.exit(app.exec_())
答案 1 :(得分:0)
我已经找到了解决方案: qm 文件。您可以使用lrelease
从 ts 文件中获取这些文件。