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加载至程序。
- 点赞
- 收藏
- 关注作者
评论(0)