Pyqt英译芬兰语

2024-09-30 03:25:40 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

.qm文件出现在正确的路径上(现在它采用法语,我猜)在按钮上我使用这个文本

^{pr2}$

Tags: 方法语言app应用程序sysloadqtpyqt
3条回答

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

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

self.translator = translator

否则,即使在安装之后,翻译器也会被垃圾回收。在这种情况下,self.tr()将停止工作(静默失败)。在

似乎您混合了两个东西: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语言工具。在

通过安装多个转换器,您可以混合Qt本身的翻译和您自己的应用程序翻译。在

请注意,加载转换器时,不必将.qm扩展名添加到文件名中。在

相关问题 更多 >

    热门问题