-
Qt的国际化步骤:
- 把需要翻译的地方全部用TR( “”)函数包含进来。
- 在pro文件中加入TRANSLATIONS + = XXX.ts.
- 如下图所示,单击更新翻译(或直接在终端中执行指令lupdate -verbose XXX.pro),生成XXX.ts文件。
- 使用的Qt的语言学家工具翻译TS,然后保存。
- 单击上图中的发布翻译,发布生成QM文件。
- 在主函数中窗口显示前加入以下代码:
QTranslator translator;
translator.load("XXX.qm");
app.installTranslator(&translator);
Qt的国际化可能遇到的不完全或者失败的问题
- 父类继承了的Qt的类并且加入了Q_OBJECT宏,在子类中由于没有用到信号槽,因此用TR(“”)包含好后,编译的时候不会有问题,翻译好发布成功,但没有汉化成功。
- 解决办法:这个问题是没有添加Q_OBJECT,所有子类都加上Q_OBJECT宏,或者都用QObject :: tr(“”),我那时候想着父类的Qt自带的类,就直接用的tr ( “”),结果遇到问题,加上Q_OBJECT宏就立马解决了。
2。没有用TR( “”)包含好,像的QString( “中文%1”)。ARG(i)中。
- 解决办法:需要把这个拆分开来QString(tr(“中文”))+ QString(“%1”)。arg(i)。
3.发布的时候用linguist发布,导致汉化不完全。
- 解决办法:使用上面提到的方法来发布。
4.遇到qm文件路径不对,载入不成功,这个是路径问题导致了。
- 解决办法:这个是由于文件路径导致的。
5。
来源:https: //blog.csdn.net/andy_93/article/details/53505571