Pyqt英语到芬兰语翻译

时间:2012-10-23 14:29:40

标签: python qt pyqt

我想将pyqt应用程序的语言从英语转换为芬兰语。我看到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)))

3 个答案:

答案 0 :(得分:6)

看来你混合了两件事:Qt本身的翻译(通过qt_xx.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制作翻译部分对您有所帮助。您需要提供项目文件,翻译文件(.ts)并使用Qt Linguist工具。

您可以通过安装多个翻译器来混合Qt本身的翻译和您自己的应用翻译。

请注意,加载翻译器时,您不必将.qm扩展名添加到文件名中。

答案 1 :(得分:1)

请阅读Qt翻译手册,或者只看一个非常基本的说明性示例:http://doc.qt.digia.com/qt/linguist-hellotr.html。请注意:您可能需要使用f.i自行提供翻译文件。 Qt Linguist

答案 2 :(得分:0)

如果您在窗口__init__()内执行此操作,则必须保存(保留对您的译员的引用):

self.translator = translator

否则即使安装完成后,您的翻译人员也会收集垃圾。在这种情况下,self.tr()将停止工作(无声地失败)。