在網上搜索了許多如何將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>