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-P3
开发语言·qt·计算机视觉
大嘴皮猴儿19 小时前
从零开始学商品图翻译:小白也能快速掌握的多语言文字处理与上架技巧
大数据·ide·人工智能·macos·新媒体运营·xcode·自动翻译
云中飞鸿20 小时前
如何编译编译 Qwt-5.2.0?
qt
雾岛听蓝1 天前
Qt 输入与多元素控件详解
开发语言·经验分享·笔记·qt
怎么没有名字注册了啊1 天前
解决qt制作软件.app迁移问题(发布)Mac
开发语言·qt
輕華2 天前
PyQt5入门实战:安装、QtDesigner设计与PyUIC转换完整指南
开发语言·qt
雾岛听蓝2 天前
Qt Widget控件属性详解
开发语言·经验分享·笔记·qt
大橘2 天前
【qml-5.1】qml与c++交互(QML_ELEMENT/QML_SINGLETON)
开发语言·c++·qt·交互·qml
雾岛听蓝2 天前
Qt按钮与标签控件详解
开发语言·经验分享·笔记·qt
碎碎念的安静2 天前
WPF 与 Qt 进程间通信(IPC)
开发语言·qt·wpf