qt 中英文翻译

QT 中英文翻译

第一章、中英文翻译简介

QTranslator类的对象包含一组从源语言到目标语言的翻译。QTranslator提供了在翻译文件中查找翻译的功能。翻译文件是使用Qt Linguist在这里插入图片描述
创建的。
QTranslator最常见的用途是:加载一个翻译文件,并使用QCoreApplication::installTranslator()安装它。

第二章、中英文翻译实战

本案例我们将创建一个演示案例如下图所示
在这里插入图片描述
通过Language按钮进行中英文切换

2.0 效果演示

请添加图片描述

2.1 生成*.ts文件

首先我们在工程文件中键入如下代码

TRANSLATIONS += xx.ts//xx可任意填写

如图所示
在这里插入图片描述
然后再构建中找到qmake,并且点击qmake
在这里插入图片描述
接着工具->外部->Qt语言家-更新翻译(lupdate),点击更新翻译如下图所示
在这里插入图片描述
概要信息中便会产生CN.ts(xx.ts)文件,如下图所示
在这里插入图片描述
与此同时我们也可以看到我们工程文件夹下生成了CN.ts(xx.ts)文件,如下图所示
在这里插入图片描述

2.2生成*.qm文件

我们打开Linguist软件,图标如下图
在这里插入图片描述然后通过打开文件,打开CN.ts(xx.ts),如图
在这里插入图片描述
在这里插入图片描述
1.选中需要翻译的源文
2.译文处填入译文
3.译文注释处填入译文
4.点击标记完成后会自动移动到下一个源文出处,如图所示在这里插入图片描述
翻译完成如下图所示,我们可以通过预览区看见我们所翻译的内容
在这里插入图片描述
文件->发布,即可生成CN.qm(.qm)文件如下图所示
在这里插入图片描述
此时我们可以看到我们的工程文件夹下多了一个CN.qm(
.qm)文件,如下图所示
在这里插入图片描述

2.3 加载翻译文件

在头文件中(*.h)添加如下代码

#include <QSettings>
#include <QDir>
const QString configPath=QDir::currentPath ()+"/config.ini";
const QString cf_language = "language_cn";
template<typename T>
inline void cfgWrite(QString key, T value)
{
    QSettings settings(configPath,QSettings::IniFormat);
    settings.setValue (key,QVariant(value));
}

inline QVariant cfgRead(QString key)
{
    QSettings settings(configPath,QSettings::IniFormat);
    return settings.value(key);
}

转到Language按钮的槽函数中添加如下代码

    bool cn = cfgRead (cf_language).toBool ();
    cfgWrite(cf_language,!cn);

在main函数中添加如下代码

QTranslator translator;
    if (translator.load(QLocale(), QLatin1String("CN.qm"), QLatin1String(), QDir::currentPath ()))
    {
        if(cfgRead (cf_language).toBool ())
        a.installTranslator(&translator);
    }

把这个Shadow build后的勾去掉,如图所示
在这里插入图片描述
然后运行,点击Language按钮
在这里插入图片描述
关闭软件,再次打开

在这里插入图片描述
可以看见已经切换成中文了

第三章、演示demo

演示demo我将放在以下仓库中,至此qt中英文切换完成
qt 中英文翻译演示demo

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Qt,可以使用QTranslator类实现离线翻译TextBrowser的英文。具体的步骤如下: 1. 创建翻译文件:可以使用Qt自带的Linguist工具创建翻译文件,也可以手动创建。例如,创建一个名为“myapp_zh_CN.qm”的翻译文件,用于将英文翻译文。 2. 加载翻译文件:在应用程序,使用QTranslator类的load()函数将翻译文件加载到应用程序。 3. 设置翻译对象:通过调用TextBrowser对象的setObjectName()函数设置对象名,以便在翻译时能够识别该对象。 4. 翻译文本:使用QApplication类的translate()函数翻译文本,并使用QTextBrowser类的setText()函数将翻译后的文本设置到TextBrowser。 下面是一个简单的示例代码: ```cpp #include <QApplication> #include <QTranslator> #include <QTextBrowser> int main(int argc, char *argv[]) { QApplication app(argc, argv); // 加载翻译文件 QTranslator translator; translator.load("myapp_zh_CN.qm"); app.installTranslator(&translator); // 创建TextBrowser对象并设置对象名 QTextBrowser textBrowser; textBrowser.setObjectName("textBrowser"); // 翻译文本并设置到TextBrowser QString translatedText = QApplication::translate("textBrowser", "Hello World!"); textBrowser.setText(translatedText); textBrowser.show(); return app.exec(); } ``` 在上面的示例,我们假设有一个名为“textBrowser”的TextBrowser对象,我们将其设置为翻译对象,然后使用QApplication::translate()函数将“Hello World!”这个字符串翻译为文,并将翻译后的文本设置到TextBrowser。当用户运行应用程序时,如果系统语言环境为文,那么就会显示翻译后的文本,否则就显示原始的英文文本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春意盎然的三月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值