2024-09-30 03:25:40 发布
网友
我想把pyqt应用程序的语言从英语转换成芬兰语。我看到pyqt有一些方法,我试图使用它,但它没有帮助我
app = QtGui.QApplication(sys.argv) translator = QtCore.QTranslator() translator.load("qt_fr.qm") app.installTranslator(translator)
.qm文件出现在正确的路径上(现在它采用法语,我猜)在按钮上我使用这个文本
请阅读关于翻译的Qt手册,或者看看这里的一个非常基本但说明性的示例:http://doc.qt.digia.com/qt/linguist-hellotr.html。请注意:您可能需要使用f.i.Qt Linguist自己提供翻译文件。在
如果在窗口的__init__()内执行此操作,则必须保存(保留对)转换器的引用:
__init__()
self.translator = translator
否则,即使在安装之后,翻译器也会被垃圾回收。在这种情况下,self.tr()将停止工作(静默失败)。在
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扩展名添加到文件名中。在
请阅读关于翻译的Qt手册,或者看看这里的一个非常基本但说明性的示例:http://doc.qt.digia.com/qt/linguist-hellotr.html。请注意:您可能需要使用f.i.Qt Linguist自己提供翻译文件。在
如果在窗口的
__init__()
内执行此操作,则必须保存(保留对)转换器的引用:否则,即使在安装之后,翻译器也会被垃圾回收。在这种情况下,
self.tr()
将停止工作(静默失败)。在似乎您混合了两个东西:Qt本身的翻译(通过Qt提供)_xx.qm公司文件和随Qt一起分发)和您自己的翻译。在
这里有一个使用Qt本身的俄语翻译文件的示例:
如果您需要自己的翻译,那么i18n with Qt中的生成翻译部分会对您有所帮助。您需要提供一个项目文件、翻译文件(.ts)并使用Qt语言工具。在
通过安装多个转换器,您可以混合Qt本身的翻译和您自己的应用程序翻译。在
请注意,加载转换器时,不必将.qm扩展名添加到文件名中。在
相关问题 更多 >
编程相关推荐