0

主题:有可能吗?例如,我可以将QtGui.QFileDialog().getSaveFileName()按钮“保存”翻译成“保存”,将“取消”翻译成“忽略”吗?是否可以在QFileDialog/QFontDialog不发明速度的情况下创建我的课程?有人说这些函数总是会被翻译,这取决于 os 系统语言环境。不信,我的俄文版 OpenSUSE 说是骗人的。:-) 俄罗斯 Windows 7 有这样的行为。我在系统上看到的所有字符串都是英文的。我不是民族主义者,但我想在其他语言中使用字符串。:-) 谢谢!

4

2 回答 2

2

一个标准的 Qt 安装应该包括 20 个左右的 Qt 库本身的翻译文件。

如何使用它们的解释可以在Qt i18n 文档的这个部分找到。

这是一个基本的 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_())
于 2012-02-03T18:06:52.467 回答
0

我已经找到了解决方案:qm文件。您可以从ts文件中获取它们,使用lrelease.

于 2012-02-03T17:10:58.217 回答