本文主要描述linux系统中,使用QT添加多国语言翻译的方法,使用TRANSLATIONS+lupdate+lrelease等工具,按照步骤添加全局地址,创建文件,完成多国语言翻译功能。
1.添加目录
1.1创建项目目录
在项目中创建文件夹路径
自定义路径,本文以 resource/language/ 为例

1.2项目中创建文件在pro或者pri文件中,添加文件名
TRANSLATIONS += \
./resource/language/zh_CN.ts \
./resource/language/en_US.ts
示例图

2.创建文件
提取QT项目中用qsTr包裹的文本,生成ts后缀名文件
2.1添加环境变量
(仅linux系统,windows类似或者直接使用)
2.1.1添加lupdate和lrelease的环境变量,快捷使用
先找到QT版本下的bin目录,最后几个文件夹是 ***/bin

2.1.2按下ctrl+Alt+T,打开控制台
输入指令查看自己电脑目录下文件是哪个,本文是.bashrc
ls ~/.bash*
2.1.3输入指令,编写该文件
vi ~/.bashrc
2.1.4在最后一行输入指令,添加全局变量,具体路径按照个人电脑的bin
export PATH=/media/QT5.15/5.15.2/gcc_64/bin:$PATH
如图,输入完毕,保存并退出文件

2.1.5输入指令启用设置,使其生效
source ~/.bashrc
2.1.6输入指令查看版本
lupdate -version

显示有版本输出时,说明全局变量添加成功
3.生成ts文件
3.1使用lupdate生成ts文件
3.1.1在任意目录输入指令,前面是pro路径,后面aaa.pro是项目名
lupdate /home/xxx/xxx/aaa.pro
3.1.2在同pro控制台输入指令
lupdate aaa.pro
自动创建项目文件,如图所示

4.编辑翻译
4.1使用QT自带的 linguist 工具翻译
任意目录,输入linguist,打开软件
linguist
打开成功显示如下图

4.2添加翻译
点击文件 - 打开 ,选择需要翻译的ts文件
打开后如下图

修改内容:
1.当前页所有翻译完成并勾选后,自动打钩
2.默认问号
3.翻译完成后点击问号,打钩标记,不点击不影响
4.翻译内容
5.注释信息
4.3保存(很重要)
点击左上脚-文件-保存
5.生成qm文件
5.1linguist中生成
保存文件后,点击左上角 - 文件 - 发布
5.2方法同3,使用lrelease操作
在pro同目录,打开控制台,输入如下指令,aaa.pro是项目pro名称
lrelease aaa.pro
5.3生成
查看如下图生成文件

6.项目中调用翻译文件
6.1添加文件到项目中
右击,添加现有文件,将qm文件导入

6.2创建函数,区分使用的翻译文件
#include <Window.hpp>
#include <QCoreApplication>
void setLanguage(int value)//输入区分的翻译类型
{
qWarning()<<"value"<<value;
if(language_value != value){
bool is_translate = true;
QCoreApplication::removeTranslator(&m_translator);
switch(value){
case 0:
is_translate = m_translator.load(":/language/zh_CN.qm");
break;
case 1:
is_translate = m_translator.load(":/language/zh_CN.qm");
break;
case 2:
is_translate = m_translator.load(":/language/en_US.qm");
break;
default:
is_translate = m_translator.load(":/language/zh_CN.qm");
break;
}
QCoreApplication::installTranslator(&m_translator);
qWarning()<<"是否正确打开文件"<<is_translate;
Window::instance()->engine()->retranslate();
language_value = value;
}
}
6.3查找文件路径

右击qm文件,点击 copy Path 或者点击 copy URL,复制路径
替换代码中load加载的路径
7使用翻译函数
调用setLanguage(int value)方法,根据不同翻译,给value赋值即可
setLanguage(1);
7快捷工具添加和使用
7.1打开配置
7.1.1点击工具

7.1.2点击 外部 - 配置 进入如下界面

7.1.3点击左下角 添加 - 目录

7.1.4出现新目录,双击可改名

7.1.5点击选中刚刚创建的 新类别
点击左下角 添加 - 添加工具 ,如下图

7.1.6根据lupdate和lrelease添加不同参数
update
%{CurrentDocument:Project:QT_INSTALL_BINS}/lupdate
%{CurrentDocument:Project:FilePath}
%{CurrentDocument:Project:Path}

release
%{CurrentDocument:Project:QT_INSTALL_BINS}/lrelease
%{CurrentDocument:Project:FilePath}
%{CurrentDocument:Project:Path}

工具添加完毕
7.2工具使用
点击 工具 - 外部 - 刚刚创建的工具目录 - 工具名称lupdate或lrelease
根据选择的工具,自动执行lupdate和lrelease
8.注意
lrelease效果和linguist的发布是一样的