900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Qt 国际化 (中英文切换)

Qt 国际化 (中英文切换)

时间:2024-02-29 16:41:14

相关推荐

Qt  国际化 (中英文切换)

在工程中,新建一个资源文件,命名为translator

资源文件在工程目录中的结构

2. 修改pro

在pro文件中添加

TRANSLATIONS += resources/tr_zh.ts \resources/tr_en.ts

3.代码中所有需要翻译的字符串用tr("")包含 eg: tr(“中文”)

4.如下图,点击更新翻译(lupdate)

此时会在工程目录新建一个resources文件夹 ,并在其中生成了 tr_en.ts 和 tr_zh.ts 两个文件

5. 打开tr_zh.ts (翻译成中文)

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS version="2.1" language="en_US"><context><name>Form</name><message><location filename="../form.cpp" line="10"/><source>中文</source><translation type="unfinished"></translation></message></context></TS>

修改 <translation type="unfinished"></translation> 为 <translation type="unfinished">中文</translation>

打开tr_en.ts(翻译成英文)

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE TS><TS version="2.1" language="en_US"><context><name>Form</name><message><location filename="../form.cpp" line="10"/><source>中文</source><translation type="unfinished"></translation></message></context></TS>

修改<source>中文</source><translation type="unfinished"></translation> 为<source>中文</source><translation type="unfinished">Chinese</translation>

除了上述手动修改,还可以使用Qt Linguist 工具进行编辑

如下图,点击发布翻译(lrelease)

会在resources中 生成 tr_en.qm 和tr_zh.qm两个文件将qm文件添加到工程中

切换

#include <QTranslator>private:QTranslator translator;

if(!qApp->removeTranslator(&translator)){qDebug()<<"remove error....";}if( 中文显示 ){if(translator.load(":/resources/tr_zh.qm")){qApp->installTranslator(&translator);}else{qDebug()<<"load Chinese file error";}}else if(英文显示){if(translator.load(":/resources/tr_en.qm")){qApp->installTranslator(&translator);}else{qDebug()<<"load English file error";}}

**

注:翻译文件加载的位置必须在界面实例化之前完成,否则是没有效果的

**

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。