QT国际化

写的比较简洁

语言文件:

ts:编辑翻译用的,是xml,可以用linguist(qt语言专家)或者Editplus进行翻译

qm:这种文件是ts的release版,无法编辑,发布的时候用这个

操作:

1.首先打开pro,添加TRANSLATIONS  = xxxx_zh_CN.ts xxxxx.en.ts

2.然后用lupdate xxx.pro 来生成这两个ts文件

3.翻译,qt语言专家或者其他编辑器

4.lrelase  xxx.pro或者qt语言专家中的发布或者qtcreator-->工具--->外部---->发布/更新

接下来是写代码了:

 1 int main(int argc, char *argv[])
 2
 3 {
 4
 5     QApplication app(argc, argv);
 6
 7
 8
 9     QString locale = QLocale::system().name();   //locale为zh_CN
10
11
12
13     QTranslator translator;
14
15     translator.load(QString("xxxx_") + locale);    //这是动态变化的一个手段,qm文件
16
17     app.installTranslator(&translator);
18
19
20
21     MainWindow mainWindow;
22
23     mainWindow.show();
24
25     return app.exec();
26
27 }

如果要手动切换,可以加一个手动切换函数:

 1 void MainWindow::changeLanguage()
 2 {
 3     QString qmName = m_bChinese ? "chinese.qm" : "english.qm";
 4
 5     m_bChinese = !m_bChinese;
 6
 7     if (m_pTranslator->load(qmName,       QApplication::applicationDirPath()))
 8
 9     {
10
11         qApp->installTranslator(m_pTranslator);
12
13         ui->retranslateUi(this);
14
15     }
16
17  }
时间: 2024-11-16 01:56:43

QT国际化的相关文章

Qt国际化详细介绍,中文乱码以及解决方案

Qt国际化的一般步骤 运行 lupdate,从应用程序的代码中提取所有界面上的可见字符. 这些可见字符必须被 tr() .QCoreApplication::translate().Qt_TR_NOOP().Qt_TRANSLATE_NOOP()等来包裹字符串,具体这些函数或者宏是什么功能,我们后面细说. 使用 Qt Linguist 翻译应用程序. 运行 lrelease,生成二进制的 .qm 文件,应用程序可以使用 QTranslator 加载这个文件. 翻译标志函数和宏 在类内时,使用tr

qt 国际化

1. 修改工程文件 .pro ,加入翻译源文件 hello_world.ts: TRANSLATIONS += \ Resource/translations/hello_world.ts 写代码时需要注意下面两点: 2. 源码用 utf-8 字符集 3. 源码中需要翻译的字符串必须用英文(不能有中文或其它语言),则需要用 tr()  函数. 例如: QMessageBox::information(this,tr("Information"),tr("Hello world

Qt国际化(Q_DECLARE_TR_FUNCTIONS() 宏给非Qt类添加翻译支持,以前没见过QTextEncoder和QTextDecoder和QLibraryInfo::location()和QEvent::LanguageChange)

Internationalization with Qt 应用程序的国际化就是使得程序能在国际间可用而不仅仅是在本国可用的过程. Relevant Qt Classes andAPIs 以下的类支持Qt的国际化. QTextCodec QTextDecoder QTextEncoder QTranslator QLocale Languages and WritingSystems 有时,国际化是比较简单的,例如,把美国的应用程序让澳大利亚或英国的用户可访问,只需要简单的改变拼写.但是,把美国的

Qt国际化相关类(以前没见过codec->toUnicode,QTextCodec,QLocale.toString和QLocale::setDefault,QInputMethod::locale())

QTextCodec QTextCodec为文本编码之间提供转换. Qt用Unicode 来存储,绘制和操作字符串.在很多情况下你可能希望操作不同编码的数据.例如,大部分日本文档是以Shift-JIS或 ISO 2022-JP进行存储,然而俄国用户的文档是以KOI8-R 或 Windows-1251编码的. Qt提供一组QtextCodec类来实现非Unicode 和Unicode 格式之间的转换.你也可以创建自己的编码解码器. 支持的编码如下: ·        Apple Roman ·  

qt 国际化(翻译时会触发changeEvent)

1. 修改工程文件 .pro ,加入翻译源文件 hello_world.ts: TRANSLATIONS += \        Resource/translations/hello_world.ts 写代码时需要注意下面两点:  2. 源码用 utf-8 字符集3. 源码中需要翻译的字符串必须用英文(不能有中文或其它语言),则需要用 tr()  函数.  例如: QMessageBox::information(this,tr("Information"),tr("Hel

Qt与国际化

默默地EEer,原文地址: http://www.cnblogs.com/hebaichuanyeah/p/5628012.html Qt国际化可能是我最喜的Qt功能. 国际化是多语言切换支持. Qt实现国际化需要满足两个条件 1.所有Qstring字符串用tr()修饰. 2.导入翻译文件. 改造上一篇文章线程的例子,添加国际化支持: http://www.cnblogs.com/hebaichuanyeah/p/5618781.html 把所有字符串全部用tr()修饰,增加一个语言切换下拉选项

qt中文编码(好多方法)

qt中文编码 来源:http://www.cublog.cn/u1/59481/showart_1947231.html 前些日子,被编码折磨了一段时间,总结一下Qt中的编码. [Qt 编码简单实验] 首先,Qt中得QString 类对字符串进行了封装,其内部使用Unicode对传入的串进行编码.这样一来,QString就可以处理绝大多数的国际语言.将QString中的字符根据语言翻译的过程,也就是Qt 的Translater针对程序中使用含有的tr("XXXXX"),进行翻译的过程.

开篇-QT完全手册

嵌入式工具Qt的安装与使用 摘要 Qt是Trolltech公司的一个产品.Trolltech是挪威的一家软件公司,主要开 发两种产品:一种是跨平台应用程序界面框架:另外一种就是提供给做嵌入式Linux开发的应用程序平台,能够应用到PDA和各种移动设备上.Qt和 Qtopia分别是其中具有代表性的两个.(2004-05-05 10:52:14) -----------------------------------------------------------------------------

Qt工具知多少(一目了然)

一级题目: Qt Designer — 所见即所得的界面设计工具, 可以用拖拽的方式将控件排布在界面上,支持layout, 支持signal/slot编辑. 生成的文件保存为ui格式, ui是xml格式的普通文本文件, 默认编码为utf8, 所以界面上还可以直接写中文(但是不推荐这么做哦,还是应该用标准的Qt国际化的方法来翻译界面.). Qt Assistant — 类似MSDN的文档查看工具, 支持html的子集(图片.超链.文本着色), 支持目录结构.关键字索引和全文搜索, 可以很方便的查找