我想把pyqt应用程序的langauge从英语转换成芬兰语。我看到pyqt有一些方法,我试着用它,但它没有帮助我

app = QtGui.QApplication(sys.argv)
translator = QtCore.QTranslator()
translator.load("qt_fr.qm")
app.installTranslator(translator)

.qm文件位于正确的路径(我猜现在它是法语)上,在按钮上我使用此文本
 name = "File"
 button.setText(self.tr(QtCore.QString(name)))

最佳答案

看来你正在混合两件事:QT本身的翻译(通过QTXX.QM文件和QT分发)和你自己的翻译。
这里有一个使用Qt本身的俄语翻译文件的示例:

from PyQt4.QtGui import *
from PyQt4.QtCore import *

class MyWindow(QWidget):
    def __init__(self, parent=None):
        super(QWidget, self).__init__(parent)

        self.hbox = QHBoxLayout(self)
        self.myButtons = QDialogButtonBox(self)
        self.hbox.addWidget(self.myButtons)
        button = self.myButtons.addButton(QDialogButtonBox.Open)

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    translator = QTranslator()
    print translator.load("qt_ru", QLibraryInfo.location(QLibraryInfo.TranslationsPath))
    app.installTranslator(translator)
    ui = MyWindow()
    ui.show()
    sys.exit(app.exec_())

如果您需要自己的翻译,那么i18n with Qt的product translations部分可以为您提供帮助。您需要提供一个项目文件、翻译文件(.ts)并使用Qt语言学家工具。
您可以通过安装多个转换器来混合Qt本身的翻译和您自己的应用程序翻译。
请注意,加载翻译程序时,不必将.qm扩展名添加到文件名中。

10-07 13:23
查看更多