在网上搜索了许多如何将QMessageBox中提示框中的英文(OK、Cancel等)汉化,在尽量不改变原有的代码前提下,dosmlp提出的办法是最合适的,他通过跟踪源码发现,所有的翻译都是从QplatformTheme进行查找的,但是Qt自带的qt_zh_CN.qm没有进行翻译,所以,我们可以通过语言家将qt_zh_CN.qm另存为qt_zh_CN.ts文件,然后在末尾加上下面的上下文,然后发布另存为新的qm文件,这样,之前写的代码都不用动,而是重新加载下qm文件。
<context>
<name>QPlatformTheme</name>
<message>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<source>Save</source>
<translation>保存</translation>
</message>
<message>
<source>Save All</source>
<translation>保存全部</translation>
</message>
<message>
<source>Open</source>
<translation>打开</translation>
</message>
<message>
<source>&Yes</source>
<translation>&是</translation>
</message>
<message>
<source>Yes to &All</source>
<translation>全部&是</translation>
</message>
<message>
<source>&No</source>
<translation>&否</translation>
</message>
<message>
<source>N&o to All</source>
<translation>&全部否</translation>
</message>
<message>
<source>Abort</source>
<translation>终止</translation>
</message>
<message>
<source>Retry</source>
<translation>重试</translation>
</message>
<message>
<source>Ignore</source>
<translation>忽略</translation>
</message>
<message>
<source>Close</source>
<translation>关闭</translation>
</message>
<message>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<source>Discard</source>
<translation>放弃</translation>
</message>
<message>
<source>Help</source>
<translation>帮助</translation>
</message>
<message>
<source>Apply</source>
<translation>应用</translation>
</message>
<message>
<source>Reset</source>
<translation>重置</translation>
</message>
<message>
<source>Restore Defaults</source>
<translation>恢复默认</translation>
</message>
</context>