(转)QT中文乱码与国际化支持

时间:2014-06-04 15:33:23   收藏:0   阅读:423

Qt内部采用的全Unicode编码,这从根本上保证了多国语界面实现的正确性和便捷性。Qt本身提供的linguist工具,用来实现翻译过程十分方便。MFC中利用资源DLL切换资源,或使用多个RC文件进行不同语言版本编译等方法都十分麻烦,如果你曾经使用过MFC,QT解决多语言问题的便捷性绝对会让你感觉是一种享受。本文讨论以下几个方面内容:

1、  QT中解决中文乱码的方法;

2、  QT中实现国家化支持。

3、  对话框实现多语言

一、       中文乱码

1、  在程序中直接使用中文,需要在程序中加入以下代码:

bubuko.com,布布扣
#include <QTextCodec>

int main(int argc, char **argv)
{
           QApplication app(argc, argv);
           QTextCodec *codec = QTextCodec::codecForName("GB2312");

           QTextCodec::setCodecForLocale(codec);
           QTextCodec::setCodecForCStrings(codec);
           QTextCodec::setCodecForTr(codec);

           …… ……
            return app.exec();
}
bubuko.com,布布扣

这样在程序中使用tr(“中文”)或者直接使用“中文”了;

2、  解决读取ini文件中中文乱码

QSettings settings("xxxx.ini",QSettings::IniFormat);

settings.setIniCodec(QTextCodec::codecForName("GB2312")); settings.beginGroup("company");

3、  解决读取中文文件中文的乱码

QFile file("xxxx.txt");
QTextStream stream(file,QIODevice::ReadOnly);
stream.setCodeC( QTextCodec::codecForName("GB2312") );
stream.readAll();

二、       国际化支持

 

QT中实现多国语言,建议在程序中直接英文,而后通过不同的翻译文件实现多语言的支持。实现多国语的步骤有如下几步(提及的工具均为QT自带):

lupdate *.pro

*.pro包含pro文件的全路径。lupdate会解析*.pro文件,生成TRANSLATIONS中的 *.ts 文件,这些文件可以被linguist工具打开,按照提示一个一个的翻译成需要的文件并保存。

转自:http://blog.csdn.net/alicehyxx/article/details/4960571

(转)QT中文乱码与国际化支持,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!