qt多语言翻译
ps很多场景需要我们编写的应用程序支持不同的语言.
qt内置了对于界面以及交互字符串的翻译
首先在我们代码里面使用到的字符串应使用tr("test"); 包起来.
若如动态插入的字符串.应使用QString("%1").arg(tr("test")).
建议最好在写的时候就写英文,然后通过翻译实现中文等其他语言.
pro文件加入这行:
TRANSLATIONS += en.ts ch.ts
en.ts 表示英语 ch.ts 表示中文
然后
依次选择.点击更新翻译,这时候我们去项目目录下会生成对应的en.ts 和ch.ts 两个文件
在使用qt自带的翻译软件(H:\Qt5.6.3\5.6.3\mingw49_32\bin\linguist.exe)ps:每个人电脑qt安装路径不同,选取自己电脑路径.或者直接在windows界面搜索linguist也可以找到
打开软件 加载这2个文件进行翻译,翻译完成保存
最后我们再回到qt使用发布翻译
这时候会在项目目录生成对应的en.qm 和ch.qm.
翻译至此就完成了.
程序main函数加入划线这几句即可加载刚刚翻译的对应文件.
动态翻译:
写一个槽函数
void MainWindow::setLanguage(QString &language_type)
{
QTranslator trans;
if(language_type == "xxx"){
trans.load("H://en.qm");
}else{
trans.load("H://ch.qm");
}
qApp->installTranslator(&trans);
ui->retranslateUi(this);
}
配置文件写注册表.INI.文本.数据库随意.读出来解析下就行了.