记录Qt多语言的实现过程
目录
[4.2 .更改文件配置](#4.2 .更改文件配置)
[5. 生成qm文件](#5. 生成qm文件)
[6.2 事件执行](#6.2 事件执行)
0.效果
1.项目配置文件.pro配置
cpp
TRANSLATIONS+= en_tr.ts \
zh_tr.ts
2.程序中的字符串用tr()封装
cpp
labInfo->setText(tr("字体名称"));
3.生成翻译文件
4.使用Qt语言家修改翻译文件
4.1使用Qt语言家打开
4.2 .更改文件配置
5. 生成qm文件
6.代码执行切换语言
6.1入口处
入口函数引用、声明
cpp
//多语言使用
#include <QTranslator>
#include <QSettings>
QTranslator trans;
入口函数内部
cpp
//多语言入口函数内部
QApplication::setOrganizationName("CC-Qt");
QApplication::setApplicationName("CC");
QSettings settings;
QString curLang = settings.value("Language","CN").toString();//读取注册表
bool success =false;
if(curLang=="EN")
success = trans.load("en_tr.qm");
else
success = trans.load("zh_tr.qm");
if(success)
a.installTranslator(&trans);
TextEditorExample example;
example.show();
6.2 事件执行
cpp
extern QTranslator trans;//声明外部变量
void TextEditorExample::on_actLang_EN_triggered()
{
if(trans.load("en_tr.qm"))
{
ui->retranslateUi(this);
labInfo->setText(tr("字体名称"));
QSettings settings;
settings.setValue("Language","CN");
}
}
void TextEditorExample::on_actLang_CN_triggered()
{
if(trans.load("zh_tr.qm"))
{
ui->retranslateUi(this);
labInfo->setText(tr("字体名称"));
QSettings settings;
settings.setValue("Language","CN");
}
}