PyQ中的StandardContextMenu国际化

2024-10-01 15:46:57 发布

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

在PyQt的QPlaintTextEdit中翻译(本地化)上下文菜单的最佳方法是什么?在

例如:

popup_menu = self.createStandardContextMenu() popup_menu.insertMenu(popup_menu.actions()[0], QMenu(self.tr("My menu")))

在这里,我可以翻译“我的菜单”(pyllupdate4,然后是lrelease),但不能翻译所有其他标准项,如“剪切”、“过去”。。。在


Tags: 方法selfactionsmy菜单trpyqtmenu
1条回答
网友
1楼 · 发布于 2024-10-01 15:46:57

QPlaintTextEdit的上下文菜单是由一个内部的QTextControl类提供的(该类也被QTextEdit等其他小部件使用),并且每个菜单项的文本已经包装在一个tr调用中。因此,任何需要翻译这些字符串的应用程序只需确保为Qt库本身加载适当的翻译文件。在

Qt提供大约20种语言的翻译文件,通常应该与Qt库一起安装。这些文件的位置可以通过编程方式确定,如下所示:

>>> from PyQt4 import QtCore
>>> print QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.TranslationsPath)
/usr/share/qt/translations

如果没有语言的翻译文件,则需要从模板创建一个。模板可以通过使用Qt的lconvert工具剥离现有的翻译文件来获得:

^{pr2}$

有关生成和使用翻译的详细信息,请参见here。在

相关问题 更多 >

    热门问题