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.文本.数据库随意.读出来解析下就行了.

 

posted @ 2020-05-14 16:05  Freedom-萱  阅读(1924)  评论(0编辑  收藏  举报