深圳网站建设的基本知识,如何用VS2017做网站,深圳坑梓网站建设公司,汽车贸易网站建设方案Qt多语言翻译概述 Qt提供了非常简单易用的多语言翻译机制#xff0c;其核心类为QTranslator.概括来说就是利用Qt的lupdate工具将项目中所有tr函数包裹的字符串提取到.ts文件中#xff0c;然后使用Qt Linguist由专门的翻译人员对提取的.ts文件进行逐个单词短语的翻译工作. 翻译…Qt多语言翻译概述 Qt提供了非常简单易用的多语言翻译机制其核心类为QTranslator.概括来说就是利用Qt的lupdate工具将项目中所有tr函数包裹的字符串提取到.ts文件中然后使用Qt Linguist由专门的翻译人员对提取的.ts文件进行逐个单词短语的翻译工作. 翻译完成后输出对应的.qm文件代码中使用QTranslator的load方法加载.qm文件即可.
Qt多语言翻译步骤 以一个简单的Demo来说明 1 编写代码过程中需要注意两个点第一点是所有需要翻译的单词/短语需要用tr函数包裹第二点就是.pro文件中需要加入lupdate生成的.ts文件
#include QApplication
#include QLabel
#include QStringint main(int argc, char *argv[])
{QApplication a(argc, argv);QLabel label(nullptr);label.setText(QObject::tr(Translate Test));label.show();return a.exec();
}代码很简单就是单纯的label显示一个字符串然后需要在项目的.pro文件中加入生成的.ts文件
TRANSLATIONS demo_zh_CN.ts2 使用lupdate生成.ts文件
lupdate ${项目名}.pro对应生成的.ts文件内容如下
?xml version1.0 encodingutf-8?
!DOCTYPE TS
TS version2.1 languagezh_CN
contextnameQObject/namemessagelocation filenamemain.cpp line10/sourceTranslate Test/sourcetranslation typeunfinished/translation/message
/context
/TS根据文件内容可以看到我们用tr包裹起来待翻译的字符串已经被提取到.ts文件中type表示是否已经翻译未翻译为unfinished翻译完成则显示对应翻译的译文.
3 使用linguist翻译.ts文件 打开linguist软件使用Open菜单打开我们需要翻译的.ts文件对提取到的单词/短语逐个进行翻译 翻译完成之后点击文件菜单下发布即可生成对应的.qm文件到.ts同级目录下
4 界面中当用户点击语言切换的时候只需要添加上以下代码即可完成英-汉的翻译
QTranslator translator;
if (translator.load(demo_zh_CN.qm)) {QCoreApplication::installTranslator(translator);
}