在网上学习了一下QT的国际化使用方法,最后将自己试成功的方法总结例如以下:

当中遇到的问题有:生成的ts文件里 代码中的中文 有的不显示,有的显示乱码。

 

步骤1:

生成.ts文件,在pro项目文件里增加TRANSLATIONS =translate_zh_CN.ts,名字任取。且指定编码。这点非常重要,不然可能会在生成的ts 文件里包括乱码,不利于后期翻译。

TRANSLATIONS = translate_zh_CN.tstranslate_zh_EN.ts translate_zh_TW.ts

CODECFORTR = utf-8 #or gbk

#DEFAULTCODEC = utf-8

#CODEC = utf-8

注意,假设CODECFORTR 未定义。将找DEFAULTCODEC。假设还未定义,将找CODEC。3个都未定义的话,就採用latin1

步骤2:

在pro文件上右击,选择 “在此打开命令行控制台”

在命令行指定 ts 文件时,还须要在命令行指定编码。保证生成的ts文件里的中文不含乱码。

lupdate hello.pro -codecfortr utf-8

假设你的lupdate 工具所在文件夹未增加环境变量,将找不到此命令,你能够搜索查找到luddate.exe所在文件夹。然后运行:

C:\Qt\4.8.0\bin\lupdate.exehello.pro -codecfortr utf-8

将会生成之前在.pro文件里指定的三个ts文件translate_zh_CN.tstranslate_zh_EN.ts
translate_zh_TW.ts

步骤3:

再在命令窗体中输入linguist(翻译工具)。打开翻译工具;

C:\Qt\4.8.0\bin\linguist.exe

弹出图形化界面工具。

然后就能够一个一个翻译了。最后点击linguist文件菜单中的公布,则会生成一个与ts文件同名的qm文件

步骤4:

在代码中须要的地方载入字符文件就可以

QTranslatortranslator;

translator.load("./translate_zh_CN.qm");

qApp->installTranslator(&translator);

ui->retranslateUi(this);

注:如是代码中的中文字符,须要翻译的,要用QObject::tr("草稿箱") 将中文字符包括起来,才会显示在ts文件里。

另一种生成qm的方法,比如在translate_zh_EN.ts 文件里将“帮助”翻译为“Help”

<message>

<locationfilename="mainwindow.ui" line="347"/>

<source>帮助</source>

<translationtype="unfinished">Help</translation>

</message>

然后用release 命令生成指定的qm文件。

C:\Qt\4.8.0\bin\lrelease.exe  translate_zh_EN.ts  -qm  translate_zh_EN.qm

 

这样就能够任意调用不同的qm文件。自由转换软件界面的显示语言了。

最新文章

  1. AH00098 pid file overwritten
  2. Qt 对话框显示控制按钮
  3. flash的动态加载技术
  4. POJ 3177 Redundant Paths(Tarjan)
  5. 何时使用hadoop fs、hadoop dfs与hdfs dfs命令
  6. discuz制作
  7. ubuntu 运行android sdk 下的工具adb报bash: ./adb: No such file or directory
  8. C#委托(Delegate)学习日记
  9. hibernate异常:Could not determine type for: java.util.Set
  10. htmlspecialchars()函数
  11. JQuery - 根据节点获取对应的id,可用于留言板
  12. Notepad++ PluginManager安装常用插件
  13. 【python】数据库
  14. windows多线程--原子操作
  15. LeetCode - Kth Largest Element in a Stream
  16. libnids
  17. 设置wetty不需要账号登录便可进行命令行操作
  18. Solr可视化简单的操作
  19. 修改 nginx 默认端口
  20. csu 1803(余数分类)

热门文章

  1. Mybatis 插入后返回数据库自动增长ID
  2. 中国版Azure支持那些版本号Linux
  3. android的五大布局(layout)
  4. sql server中Join有几种
  5. size_t详细解释
  6. atitit。全局变量的设计与实现 java php的异同
  7. SVN使用(自己总结)
  8. PHP命名空间规则解析及高级功能
  9. wordpress之备份与恢复数据
  10. CCNA2.0笔记_动态路由