由于QTextEdit中使用的对象QWidgetTextControl中的复制、粘贴等右键菜单项在qt_zh_CN.qm中没有被翻译,需要自己翻译Qt 部件相关的模块为widgets,进入 widgets 源码相关路径(例如,C:\Qt\Qt5.9.1\5.9.1\Src\qtbase\src\widgets),打开 widgets.pro,添加:TRANSLATIONS += widgets.ts,在 Qt Creator 的系统菜单中,选择:工具 -> 外部 -> Qt语言家 -> 更新翻译(lupdate),就会在 widgets.pro 所在目录下生成一个 widgets.ts 文件。用 Qt Linguist 打开 widgets.ts,找到需要翻译的部件,进行翻译。以 QTextEdit 右键菜单(复制、粘贴)为例,由于 QTextEdit 右键菜单通过 QWidgetTextControl 实现,找到 QWidgetTextControl,翻译相关选项。保存翻译后的文件,选择:文件 -> 发布,这时会生成一个名为 widgets.qm 的文件,使用 QTranslator 加载生成的 widgets.qm 文件: QTranslator translator; translator.load(":/qm/widgets.qm"); app.installTranslator(&translator); 程序就可以显示为指定的语言了
1