QT使用TRANSLATIONS添加多国翻译(详细过程)

本文主要描述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的发布是一样的

记得保存

相关推荐
艾莉丝努力练剑2 小时前
【QT】QT快捷键整理
linux·运维·服务器·开发语言·图像处理·人工智能·qt
程序员_大白2 小时前
【2025版】最新Qt下载安装及配置教程(非常详细)零基础入门到精通,收藏这篇就够了
开发语言·qt
我在人间贩卖青春2 小时前
Qt多媒体编程
qt·多媒体编程
高亚奇2 小时前
QT版本 MSVC/MinGW/GCC 含义及如何区分
开发语言·qt
IdahoFalls2 小时前
QT-Windows Kits-版本问题:【“_mm_loadu_si64”: 找不到标识符】解决方案[NEW]
开发语言·c++·windows·qt·算法·visual studio
希忘auto2 小时前
详解关于VS配置好Qt环境之后但无法打开ui界面
qt·vs
希忘auto2 小时前
详解VS2022集成Qt及扩展Qt VS Tools的安装
qt·vs
我在人间贩卖青春2 小时前
Qt 网络编程
网络·qt
IAUTOMOBILE2 小时前
Qt 入门级开发实践:浅析基于 QTtest 项目的 C++ GUI 编程基础
开发语言·c++·qt