Qt 之 中英文切换的使用

//写的不对的地方请指点

1  在代码中有tr("work") 有需要中英文切换的字符串
 ui.cbxPapersType->addItem(tr("IdCard"));   //0身份证
 ui.cbxPapersType->addItem(tr("Student"));//("学生证"));
 ui.cbxPapersType->addItem(tr("WorkPermit"));//("工作证"));
 ui.cbxPapersType->addItem(tr("Soldier"));//("士兵证"));
 ui.cbxPapersType->addItem(tr("GasCardin"));//("军官证"));  
 ui.cbxPapersType->addItem(tr("Passport"));//("护照"));
 ui.cbxPapersType->addItem(tr("HouseholdRegister"));//("户口本"));
 ui.cbxPapersType->addItem(tr("deformed"));  //2残疾证
 ui.cbxPapersType->addItem(tr("other"));     //3其他

2  在cmd命令行执行 生成ts文件
  lupdate.exe -ts  XXX.ts -pro XXXX.pro

3  下载pyhon,编写脚本 将XX.db 中的中英文翻译数据与XXX.ts文件中用到需要翻译的都翻译一下。生成XXXS.ts文件

import re
#import MySQLdb
import sqlite3
def getLan(lanName,mLanFile):
 contents_end = ""
 mWords = ""
 mRes = ""
 
 try:
  #traslate language from english to other language
  f = open('S:\py\XXX.ts','r')
  regex_msg=re.compile("<message>")
  regex_source=re.compile("<source>(.*)</source>")
  regex_translate=re.compile("<translation type=\"unfinished\">.*</translation>")
  regex_endmsg=re.compile("</message>")
        #conn = MySQLdb.connect(host='localhost', user='root', passwd='',db='convert')
  conn = sqlite3.connect("S:\py\XXX.db")

for line in f:
   mMsg=regex_msg.search(line)
   mSource=regex_source.search(line)
   mTranslate=regex_translate.search(line)
   mEndMsg=regex_msg.search(line)
   if mMsg != None:
    bMsg = 1
   elif mSource != None:
    bSource = 1
    mWords = mSource.group(1)
    
    #cursor = conn.cursor()
    mSql = 'SELECT Chinese FROM translate WHERE English = "' + mWords + '" limit 1'
    #mSql = 'SELECT cn FROM lang WHERE en = "' + mWords + '" limit 1'
    #print mSql
    count = conn.execute(mSql)
    r = count.fetchone()
    
    #print count
    if r != None:
     #mRes = cursor.fetchone()
     mRes = r[0]
    else :
     mRes = ""
     
    #print mRes    
   elif  mTranslate != None:
    if (bMsg == 1) and (bSource == 1):
     line = "\t<translation>" + mRes + "</translation>\n"
     #print line
     bSource = 0
   elif mEndMsg:
    bMsg = 0
   #print line
   contents_end += line
   
  #print contents_end
  conn.close()
  f.close()
  f.tell()
 except ValueError as ioerror:
  print('file already closed')
 finally:
  print('Translate languages end')
 
 mLanFile = 'S:/py/XXS.ts'
 #print contents_end
 f = open(mLanFile,'w')
 f.write(contents_end)
 f.close()

4 lrelease 命令生成XXQM.qm文件,需要将XXX.ts文件的编码格式改成unicode

lrelease.exe  XXXS.ts

4  修改程序,在转换前(如main.cpp里)增加代码
    QTranslator qtTranslator ;

    qtTranslator.load("Language_Chn");
    a.installTranslator(&qtTranslator);

5  编译程序,运行程序。
    需要将qm文件放置在运行目录下

Qt 之 中英文切换的使用相关推荐

  1. QT翻译(中英文切换

    QT翻译(中英文切换) 工具: Qt Linguist, 一般到Qt Creater的安装目录下的/gcc_64/bin下有一个可执行文件linguist, 双击打开即可 py => ts py ...

  2. Qt实现中英文切换(国际化)

    前言 距离上一次发博客,已经又快一个月过去了,今天写一篇有关于Qt程序如何实现中英文切换的例子,之所以写这个,是因为这是最近项目的一个需求.Qt国际化,网上的例子,很多很多.... 看似很简单,但是真 ...

  3. qt 设置中英文切换

    点击设置转换 https://www.cnblogs.com/liangtianmanyue/p/14773710.html 自动检测转换 QT国际化示例, 检测系统语言,设置适合语言,按键切换显示语 ...

  4. QT 软件中英文切换

    本文内容学习自Johan Thelin的<Foundations of Qt Development>,欢迎交流. 本文中的例子是将软件版本在中英文之间动态切换,在书中归属语言国际化的章节 ...

  5. QT 中英文切换-国际化(解决部分翻译不起作用的问题)

    中英文切换-国际化 1.先看效果 2.核心代码(重新赋值刷新翻译文本) 2.0 pro文件配置 2.1 构造函数 2.2 两个按钮点击事件 3.翻译文件的生成与配置 4. 参考链接 1.先看效果 2. ...

  6. QT in VS 多语言实现(中英文切换)

    最近项目需要软件具有中英文双语切换功能,而QT又自带此功能,现将实现方式记录下来. 说到中英文切换,少不了要了解QT的内部编码方式.在此就不详述QT编码方式了,具体可参考 彻底弄懂Qt的编码.只需要记 ...

  7. Qt Quick实现国际化 中英文切换简明图文步骤

    目录 前言 一.步骤 1.在pro文件中添加需要生成的ts文件: 2.通过工具-外部-语言家-update 生成zh_CN.ts和en_US.ts 3.通过语言家打开生成的ts文件进行翻译 4.将zh ...

  8. 关于Qt 程序界面中英文切换总结

    关于Qt 程序界面中英文切换总结 Qt通过lupdate.exe和linguist.exe实现程序中英文切换 一种基于QtCreater直接使用Qt预言家(注意电脑有权限,可能翻译失败),另外一种用s ...

  9. Qt中英文切换(涉及多种场景)

    qt中英文切换涉及到一个软件两个文件,分别是QtLinguist..ts文件和.qm文件. 1.在Pro中添加 TRANSLATIONS += en.ts \ch.ts 添加这个文件后qmake,然后 ...

最新文章

  1. 大宗商品(Bulk Stock)交易
  2. 浙师大dns服务器地址
  3. Allegro禁布区打过孔或走线消除DRC错误
  4. python os.system关闭log_又到牛市!带你学习一个python强大证券数据分析工具
  5. 系统蓝屏的几种姿势,确定不了解下么?
  6. mvc html.antiforgerytoken,MVC Html.AntiForgeryToken() 防止CSRF***
  7. CBOW模型的数据预处理
  8. swift 字符串转int_Swift Tips Streamline 如何假装写过 Swift
  9. html和ajax通信,使用Ajax与服务器(JSON)通信实例
  10. “好师父”如何破解大学生就业难题
  11. matlab2c使用c++实现matlab函数系列教程-factorial函数
  12. 深度学习实现工业零件的缺陷检测
  13. 操作系统实验 文件复制/复制文件
  14. native2ascii 命令
  15. 微软商店下载显示错误,win11无法下载更新的解决方法
  16. 基于SSH开发的校园一卡通管理系统
  17. mysql架构学习——数据库结构优化笔记
  18. 《有一种错过叫作遗憾》
  19. 想运营好拼多多店铺,做好产品规划必不可少!
  20. acer计算机的无线功能键,Acer笔记本Fn组合键功能说明

热门文章

  1. Java 多态的薪酬计算的练习
  2. 高级计算机软考科目,软考高级中哪个科目好考
  3. redis命令,SpringBoot整合Redis6,主从复制,哨兵模式,集群,springCache初高级应用。
  4. c语言题目翻译,c语言专业词汇表达带翻译
  5. 矩阵分析(1)--一些基本概念
  6. Google自带翻译无效解决3个步骤
  7. 菲尔人格测试(测试一下自己的分数看看)
  8. Word中并排放置图片的方法
  9. sci审稿意见_SCI审稿人的意见很多,要全盘接受吗?
  10. android画笔大小,android之画板功能之橡皮擦 画笔大小和画笔颜色