QT系列——语言翻译

举报
小糖饼最甜呀 发表于 2022/04/07 22:26:35 2022/04/07
【摘要】 QT程序语言翻译示例(英文翻译为中文)。

    在软件项目开发过程中,有时候软件中的语言可能不仅仅只是中文,也需要翻译成其他语言,以供用户进行使用。

    QT支持软件进行多语言翻译。本文先通过创建示例程序,逐步讲解QT翻译过程,最终将程序中的英文翻译成中文。

创建程序

1. 创建DemoTr工程,如下图所示:

2. 绘制Widget.ui界面如下图所示:

Widget.ui界面使用Qt Designer工具创按照上面的界面进行绘制,具体如下:

  • 标题为“demo”;
  • 有一个label显示内容是“test;
  • 文本编辑框中设置文本“Hello world;
  • 最后添加一个“Ok”按钮。

3. 在widget.cpp中添加文本内容,代码如下:

ui->textEdit->setText(tr("Hello world"));

4. 程序启动,运行界面如下图所示:

如上图,demo程序运行后,界面显示全部都是英文,编辑框显示“Hello world”。

生成翻译文件

1. 配置翻译文件:

    在pro文件中添加:TRANSLATIONS = demo_zh_CN.ts

    其中,“demo_zh_CN.ts”名称自定义,后缀是.ts。

2. 点击菜单栏【工具】--》【外部】》【Qt语言家】》【更新翻译】,如下:

    点击【更新翻译】后,会在程序路径下自动生成一个翻译文件,翻译文件名称是pro文件中配置的文件名。如下图所示:

翻译

1. 使用Qt工具Linguist打开该翻译文件,如下图所示:

    Qt工具Linguist介绍:

  • 左侧显示上下文;
  • 中间显示该上下文对应的需要翻译的字符串;
  • 中间部位是源文与翻译情况;
  • 右侧可以显示该字符串的使用情况。

2. 选中我们需要翻译的“Hello world”,如下图所示:

    可以看到右侧可以显示出对应的代码片段,有助于上下文联系,进行翻译。

3. 我们在源文位置进行翻译,翻译为“你好,世界”,如下图所示:

4.  翻译完成后,更新标记,点击:

    点击前

    点击后(字符串标记变化为“√”,表示已经翻译完成。):

发布&加载翻译文件

1. 通过菜单栏【文件】》【发布】,在项目路径下生成同名文件,demo_zh_CN.qm

或者在 Qt Creator 中点击菜单栏【工具】--》【外部】》【Qt语言家】》【发布翻译(lrelease)】的方式都可以发布成功。

 

2. 程序中还需要加载翻译文件,代码如下:

    QTranslator translator;
    translator.load("demo_zh_CN.qm");
    a.installTranslator(&translator);

     注意翻译文件的路径要正确,修改成自己翻译文件所在路径。

 

3. 重新运行程序,发现"Hello world"已经翻译成功。如下图所示:

4. 示例结束。运行界面的其他英文也可以参照上述过程全部翻译。

总结

  • 需要翻译的字符串,要使用tr()包裹起来;
  • lupdate工具生成 ts格式文件;
  • Linguist工具进行ts文件的翻译和发布。
  • 最终发布的翻译文件扩展名为.qm,需要通过类QTranslator加载至程序。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。