目录
1. ts文件配置
环境配置
在pro文件添加中英文翻译过渡文件(.ts)
TRANSLATIONS = res/lang_zh_CN.ts \
res/lang_en_US.ts \
res/lang_vie_HE.ts
在工程的根目录,手动创建res文件夹
创建ts文件
打开编译环境对应的Desktop软件.输入lupdate指令
配置语言过渡软件
打开Qt语言家, 编译环境也要和编译环境对应.
打开对应的中英文过度文件(.ts),然后根据自己的需求配置文件.
2.制作翻译文件(.qm)
打开Desktop软件,输入lrelease 指令
生产的文件如下图
3.添加翻译的文件
新建一个文本文件,名称修改为language.qrc,添加内容如下
<RCC>
<qresource prefix="" >
<file>res/lang_en_US.qm</file>
<file>res/lang_zh_CN.qm</file>
<file>res/lang_vie_HE.qm</file>
</qresource>
</RCC>
在工程pro文件添加翻译文件
RESOURCES += language.qrc
4.代码使用
变量定义和函数定义
private slots:
void on_comboBox_activated(const QString& arg1); //combox槽函数声明
void changeEvent(QEvent* e); //changeEvent槽函数声明
private:
int aa; // 标记
QComboBox* combo; //
QTranslator tran; //翻译器
QApplication* qApp; //
函数内容
/**
* @brief UIDemo01::on_comboBox_activated 更改中英文
* @param arg1
*/
void UIDemo01::on_comboBox_activated(const QString& arg1)
{
aa = ui->comboBox->currentIndex();
if (aa == 0) {
qDebug() << "下标为0"; //调试用
tran.load(":/res/lang_en_US.qm");
} else if (aa == 1) {
qDebug() << "下标为1"; //调试用
tran.load(":/res/lang_zh_CN.qm");
} else {
qDebug() << "下标为其他"; //调试用
}
qApp->installTranslator(&tran);
}
/**
* @brief UIDemo01::changeEvent 调用installTranslator后,系统会给窗体发送信号将产生了changeEvent槽产生event
* @param e
*/
void UIDemo01::changeEvent(QEvent* e)
{
QWidget::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}