QTranslator类就是使用Qt的翻译文件,可以对界面中菜单栏、label、对话框等进行翻译。使用的前提是,开发者要自己创建翻译文 。

(一)QT项目实现多语言,必须做两件事
        1)确保每一个用户可见的字符串都使用了tr()函数。
        2)在应用程序启动的时候,使用QTranslator载入一个翻译文件(.qm)。
tr() 的用法:
             caseCheckBox = new QCheckBox(tr("Match &case"));
在main()函数里载入翻译文件
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    //翻译程序
   QTranslator translator;
    translator.load("spreadsheet_cn.qm");
    app.installTranslator(&translator);
    ……
}
注意:翻译文件加载的位置必须在界面实例化之前完成。

(二)生成.qm翻译文件
1、在该应用程序的.pro文件文件中添加TRANSLATIONS项,可分别对应于不同的语言,如:spreadsheet_cn.ts, 对应中文,名字 可以自己定义,后缀名.ts不可变动。<.ts是可读的翻译文件,使用简单的XML格式;而.qm是经过.ts转换而成的二进制机器语言>
2、翻译文件。分三步来完成:
     1)运行lupdate, 从应用程序的源代码中提取所有用户可见的字符串。
     2)使用Qt Linguist 翻译该应用程序。
     3)运行lrelease,生成二进制的.qm 文件。
以上三步均需用到QT自带的命令行控制台,启动方法:开始--->所有程序--->Qt by Nokia v4.6.3 (OpenSource)--->Qt 4.6.3 Command Prompt
启动命令行后,对应输入如下命令:
    1)lupdate –verbose spreadsheet.pro //生成相应的.ts 文件
    2)linguist //启动Linguist语言翻译工具,可以翻译相应可见字符串
    3)lrelease –verbose spreadsheet.pro //将翻译好的文件生成.qm文件

(三)Linguist 语言工具的使用
    1)启动:命令行或者开始菜单均可【bin目录下输入Linguist
    2)打开:工具界面中的File--->Open,可以打开所需的 .ts 文件
    3)翻译:界面中部的翻译栏,两行:第一行:Source Text 第二行:… Translation, 在地二行进行相应的翻译即可,翻译完一条之后点击“确定下一个”按钮。
   4)发布:点击File--->Release, 生成 .qm 文件。(与命令行的效果一样)

QTranslator使用整理

源码

    QTranslator *translator = new QTranslator;translator->load("../TestHello/TestHello.qm");a.installTranslator(translator);MainWindow w;w.show();

testHello.ts内容

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN">
<context><name>MainWindow</name><message><location filename="mainwindow.ui" line="14"/><source>MainWindow</source><translation>主窗口</translation></message><message><location filename="mainwindow.ui" line="27"/><source>hello</source><translation>你好</translation></message><message><location filename="mainwindow.ui" line="40"/><source>china</source><translation>中国</translation></message>
</context>
</TS>

mainwindow.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"><class>MainWindow</class><widget class="QMainWindow" name="MainWindow"><property name="geometry"><rect><x>0</x><y>0</y><width>400</width><height>300</height></rect></property><property name="windowTitle"><string>MainWindow</string></property><widget class="QWidget" name="centralWidget"><widget class="QPushButton" name="pushButton"><property name="geometry"><rect><x>70</x><y>110</y><width>75</width><height>23</height></rect></property><property name="text"><string>hello</string></property></widget><widget class="QPushButton" name="pushButton_2"><property name="geometry"><rect><x>230</x><y>110</y><width>75</width><height>23</height></rect></property><property name="text"><string>china</string></property></widget></widget><widget class="QMenuBar" name="menuBar"><property name="geometry"><rect><x>0</x><y>0</y><width>400</width><height>19</height></rect></property></widget><widget class="QToolBar" name="mainToolBar"><attribute name="toolBarArea"><enum>TopToolBarArea</enum></attribute><attribute name="toolBarBreak"><bool>false</bool></attribute></widget><widget class="QStatusBar" name="statusBar"/></widget><layoutdefault spacing="6" margin="11"/><resources/><connections/>
</ui>---------------------本文来自 yuxing55555 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/yuxing55555/article/details/76099572?utm_source=copy 

QT---之QTranslator【界面语言翻译】及QT-Linguist的用法相关推荐

  1. QT QTranslator 中英文翻译linguist语言家 翻译过程

    1.QT项目中,.pro文件内添加如下代码 TRANSLATIONS += test_zh.ts test_zh是自己起的名字,名字部分可以修改(一般中文为zh,英文为en) .ts是后缀,后缀不能改 ...

  2. QT中的中英文翻译(ts和qm使用方法)

    环境:QT5.14.2 和QT Creator4.11.1(Community) 第一步:如图,在需要翻译的英文文本前使用tr方法 第二步:在.pro文件里添加这段: TRANSLATIONS += ...

  3. 如何修改Qt Creator的界面语言

    如何修改Qt Creator的界面语言 以将英文界面改成中文界面为例. 1.打开Tools-Options 2.选择左侧Environment栏,在General栏内的Language中选择Chine ...

  4. 翻译 | 正式发布Qt 5.11

    本文翻译自:Qt 5.11 released 原文作者: Qt公司CTO兼Qt开源项目维护官Lars Knoll 翻译校审:Richard Lin.Hongfei Zhang.Haipeng Yu 本 ...

  5. 《Qt for Symbian》翻译系列之七:第二章 开始(1)

    <Qt for Symbian>翻译系列之七:第二章 开始(1) 2011年04月06日 本章主要介绍应用于Symbian平台的QT开发工具.对于Symbian平台的新手,本章首先通过逐步 ...

  6. PyQt5中的界面语言翻译

    前言 PyQt是Python语言环境的GUI编程解决方案之一,另外还有PyGTK.wxPython等也较为常用.PyQt作为Qt语言的Python扩展,可以用来方便快速的开发界面应用. PyQt5中的 ...

  7. QT学习笔记(1)----- QT简介

    名字由来 在<C++ GUI Programming with Qt 4>里有这么一段介绍: A Brief Histroy of Qt: The letter 'Q' was chose ...

  8. QT学习笔记(2)----- QT安装教程

    简介 Qt是跨平台的图形开发库,目前由Digia全资子公司 Qt Company 独立运营,官方网址:  http://www.qt.io/  也可以访问Qt项目域名:http://qt-projec ...

  9. Qt入门(1)——初识Qt

    Qt是一个跨平台C++图形用户界面应用程序开发框架.它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器.Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta ...

最新文章

  1. 【斗医】【13】Web应用开发20天
  2. npm使用入门(package.json)
  3. VMware ESXi 安装手记
  4. 安装完Oracle数据库之后设置手动启动方法
  5. java 中的fork join框架
  6. 电脑文件夹可以分屏的软件_电脑上什么便签软件可以添加音频?
  7. 【147天】尚学堂高淇Java300集视频精华笔记(108-109)
  8. Win8 Metro和Windows Phone的Style相关的一些问题
  9. redis php高级使用_项目中应用Redis+Php的场景
  10. Unity游戏建议对话功能 Fungus插件。
  11. 补助系统C语言,领钱了!全国各省信息系统项目管理师证书技能提升补贴说明...
  12. NDP调查:P2P下载的视频中60%为情色内容
  13. 2019年计算机操作系统考研真题
  14. python foo函数_Python函数基础
  15. AUTOCAD——三种修剪方式
  16. 1068 万绿丛中一点红
  17. Lesson 63-64 Who has the most stressful job?
  18. Mac一直要求输入密码怎么办?Mac一直弹输入密码窗口或提示存储钥匙串解决方法
  19. MaxEnt软件的下载与安装
  20. 比尔盖茨沙漠里买地建未来城市?可能是个谣传!

热门文章

  1. 简单的电商商品详情图片放大镜(vue)
  2. mapbox 与 openlayers 实现晨昏线效果
  3. 路由基础(定义、作用、组成、特点、配置)
  4. 怎么去除爱剪辑的片头片尾,教你去除片头片尾的方法
  5. 初试注意事项大合集,还有学长学姐们的小建议!
  6. !pdftex error (font expansion): auto expansion is only possible with scalable fonts
  7. iphone扫描文件图片转为文字,苹果x手机图片转文字,苹果手机jpg转换成word,ipad怎么把图片转化成文字
  8. lnk快捷方式变记事本打开还原,桌面图标变lnk还原方法
  9. 零基础学前端.jQuery入门与实践教程
  10. 基于人体姿态的时空动作检测(cpu fps33+)