一、效果
二、过程
-
利用Qt VS Tools工具创建ts文件,如图:
点击“Create New Translation File”,如下图:
这里如果你需要翻译成中文简体,就选择中文简体,如果需要翻译其他语言,就选择对应的语言就行;
注意:这里是项目工程中添加ts文件,此时本地并没有ts文件;
ts文件:保存通过Linguist(Qt语言家工具)提取出整个工程代码中带有tr的文本信息; -
利用Qt VS Tools工具创建Qt工程文件,如下图:
点击“Create Basic .pro File…”,如下图:
这里要注意,.pri要勾选,按照默认选项执行就行,最后会生成.pri和.pro文件;
这一步很重要,因为Linguist工具提取翻译文本需要通过QT的工程文件来提取,包括新增了窗口类文件时、以及添加了ts文件,都要重新创建pro、pri文件; -
打开Qt命令行,例如Qt 5.10.1 32-bit for Desktop (MSVC 2015),执行命令lupdate XXX.pro,这是工程目录下就有ts文件了;
-
打开Qt语言家工具Linguist,通过工具对源文本进行翻译,翻译完成后,点击文件下的另外发布为,指定到程序运行目录下,完成后,在运行目录下会生成qm文件;
-
添加以下代码(伪代码):
qApp->removeTranslator(&m_appTranslator);
QTranslator m_appTranslator;
m_appTranslator.load(qm文件);
qApp->installTranslator(&m_appTranslator);
ui.retranslateUi(this);
三、遇到的问题
当tr包含的字符串是中文时,遇到问题:lupdate命令提取文本到ts文件中,显示的是乱码;
解决方法:
1.先将代码文件编码改为UTF-8保存,如下图:
选择按UTF-8保存
2.头文件加入如下代码:
#pragma execution_character_set("utf-8")