这段时间一直都在怼qt的国际化,以前也接触过国际化,但是感觉不是那么的深刻,这次是因为一个项目要做一个国际化的版本,代码里面是不能出现中文的,所以就翻译了一下。qt用的是4.8.6 64位的,IDE(集成开发环境)用的是vs2010。

我就把我操作的流程在这里给大家说一遍,按照我这么做的话肯定是没有什么问题,其实就是需要两个文件,一个是ts文件,一个是qm文件。

第一步需要在pro文件中加上一段话。

TRANSLATIONS    +=  offlinedataquery_zh.ts

文件名其实可以自己去定的,我这里因为是项目需要名称定的是offlinedataquery_zh,这个zh是表示中文翻译,如果你有其他语言的需要也可以定义其他,比如日语可以定义jp都可以。

第二步找到qt的bin目录,这个可以用cmd。

然后执行

lupdate offlinedataquery.pro

这里文件还是要找准路径才行。

这里就会在根目录下生成一个ts文件。

然后再执行

lrelease offlinedataquery_zh.ts

这个时候就生成了一个qm文件,这个就是我们在代码中需要加载的文件

    QTranslator* Translator = new QTranslator;
QString tmp_gcdir = QObject::tr(getenv("GCDIR"));
QString tmp_trans = tmp_gcdir + "/translations/offlinedataquery_zh.qm";
Translator->load(tmp_trans);
app.installTranslator(Translator);

这样就可以翻译成功了。

但是我这边有个问题有个问题,ts中文中好像不是每一个tr()都能翻译过来,所以我只能自己去添加。

    <message utf8="true">
<location filename="seltimedlg.ui" line=""/>
<source>WAMS substation</source>
<translation>WAMS子站</translation>
</message>

按照这样的格式去添加就可以了,最后再执行一遍lrelease offlinedataquery_zh.ts,再次生成qm文件就可以了。

整个流程就是这样的 希望对您有帮助,其实也不难,就是要耐心一点就可以了!!!

qt翻译和国际化的探讨。的更多相关文章

  1. 让QT/Embedded支持国际化

    让QT/Embedded支持国际化 环境配置: Qt/Embedded ,在主机和目标板上存放路径都为:/root/qt-embedded-free- Qt/X11 3.3 (主要用到其中的lupda ...

  2. Qt Quick的国际化和本地化

    国际化您的应用程序 以下部分描述了国际化QML源代码的各个方面.如果您对应用程序中的所有用户界面组件都遵循这些指南,则可以针对不同语言和本地文化约定(例如日期和数字的格式化方式)本地化应用程序的各个方 ...

  3. qt 汉化 国际化

    两种方法. 1. 使用 QTextCodec  setcodeforname 设置编码, 然后在程序中对于需要处理的字符使用 fromLocal8Bit . 2. 使用 Linguist. 首先把文件 ...

  4. Bootstrap-datepicker3官方文档中文翻译---I18N/国际化(原文链接 http://bootstrap-datepicker.readthedocs.io/en/latest/index.html)

    I18N/国际化 这个插件支持月份和星期名以及weekStart选项的国际化.默认是英语(“en”); 其他有效的译本语言在 js/locales/ 目录中, 只需在插件后包含您想要的地区. 想要添加 ...

  5. Qt翻译---Thread Support in Qt

    Thread Support in Qt QT提供线程支持在平台独立的线程类.一个安全线程的传递事件的方式,一个信号槽的链接在线程之中.这使得开发多线程容易.多线程程序也是一个有用的范例为不冻结用户界 ...

  6. (Qt 翻译) QGLAbstractScene

    QGLAbstractScene Class Reference #include <QGLAbstractScene> This class was introduced in Qt3D ...

  7. (Qt 翻译) QGLSceneNode

    #include <QGLSceneNode> QGLSceneNode ( QObject * parent = 0 ) QGLSceneNode ( const QGeometryDa ...

  8. qt翻译--QWaitCondition

    QWaitCondition Class Reference[QtCore module] 该类提供一个情况变量来同步线程. #include <QWaitCondition> 注意:该类 ...

  9. Qt 国际化翻译

    简介 Qt Linguist 提供了一套加速应用程序翻译和国际化的工具.Qt 使用单一的源码树和单一的应用程序二进制包就可同时支持多个语言和书写系统. 使用 QTranslator 来加载生成的 qm ...

随机推荐

  1. [转]Python3之max key参数学习记录

    Python3之max key参数学习记录 转自https://www.cnblogs.com/zhangwei22/p/9892422.html 今天用Python写脚本,想要实现这样的功能:对于给 ...

  2. ASP.NET MVC传递Model到视图的多种方式之通用方式的使用

    ASP.NET MVC传递Model到视图的多种方式总结——通用方式的使用 有多种方式可以将数据传递到视图,如下所示: ViewData ViewBag PartialView TempData Vi ...

  3. ISO/IEC 9899:2011 条款6.2.2——标识符的连接

    6.2.2 标识符的连接 1.在不同作用域中声明的一个标识符或在同一作用域多次出现的一个标识符可以被用作对同一个对象或函数的引用,通过一个称为连接的过程.[注:在两个不同的标识符之间没有连接.]有三种 ...

  4. python中列表,元组的乘法

    直接上code吧,还可以这么玩儿 li=[1,] li=li*3 print(li) out: [1, 1, 1] =========== >>> t=(1,2) >>& ...

  5. EXCEL生成SQL脚本

    有如下一张数据库表: 当然,Excel也是这个样子的,然后需要通过Excel的命令实现如下的脚本: insert into student(name,age) values('张三',15); 实现的 ...

  6. Python的Asyncore异步Socket模块及实现端口转发的例子

    Python的Asyncore异步Socket模块及实现端口转发的例子 Asyncore模块提供了以异步的方式写入套接字服务客户端和服务器的基础结构. 只有两种方式使一个程序在单处理器上实现" ...

  7. END使用

    [root@bogon ~]# cat d.sh #!/bin/bash#. /etc/init.d/functionscat <<END+------------------------ ...

  8. IE和火狐的css兼容性问题

     CSS对浏览器器的兼容性具有很高的价值,通常情况下IE和Firefox存在很大的解析差异,这里介绍一下兼容要点. 1.DOCTYPE 影响 CSS 处理 2.FF: div 设置 margin-le ...

  9. springmvc+mybatis多数据源配置,AOP注解动态切换数据源

    springmvc与springboot没多大区别,springboot一个jar包配置几乎包含了所有springmvc,也不需要繁琐的xml配置,springmvc需要配置多种jar包,需要繁琐的x ...

  10. [Python[CV2]] -- 352: error -- 来自截取图片

    今天想用CV2 截个ROI ( Region Of Interest ) 的时候, 是这样写的 结果, 发现是截取img 那句出了错 应该为: 先纵后横 这样就OK了 cv2.selectROI 用法 ...