windows下GBK编码方式的中文移植到ubuntu下UTF-8编码方式的工作是件很令人头疼的事情,经历过一次的我深深知道是多么的痛苦,
所以从今天起我打算写程序不在代码中用一个中文.那大家要问了,要是想显示中文怎么办,那就使用Qt的预言家!
我用一个最简单的例子来阐述如何做到在界面上来切换中英文显示!
1.用qtcreator创建一个 基于QMainWindow 的MainWindow即可
2.MainWindow构造函数中初始化翻译器并安装在程序上
translator = new QTranslator(this);
qApp->installTranslator(translator);
on_actionEnglish_triggered() //初始化初始状态
3..创建两个action 用来切换中英文显示
void on_actionEnglish_triggered();
void on_actionChinese_triggered();
切换其实就是翻译器加载不同的翻译文件然后从新设置一下该翻译地方的文本
void MainWindow::on_actionEnglish_triggered()
{
translator->load(":/translations/english");
retranslateUi();
}
void
MainWindow
::on_actionChinese_triggered
()
{
translator->load(":/translations/chinese");
retranslateUi();
}
void MainWindow::retranslateUi() //注意! 被翻译的字符串一定要用 tr("xxxx") 括起来 这样在Qt语言家里才能找到待翻译的字符串
{
ui->menuLanguage->setTitle(tr("language")); //需要更新菜单栏文本
ui->actionChinese->setText(tr("chinese")); //需要更新action文本
ui->actionEnglish->setText(tr("english")); //需要更新cation文本
}
那翻译文件从哪里获取呢? 对了!就是用到Qt 语言家来生成 .
1.首先要生成 .ts文件 , 此文件Qt语言家可以识别打开来进行翻译
在.pro文件中加入 TRANSLATIONS = english.ts chinese.ts ,
然后Qtcreator 工具 -->外部 -->qt 语言家-->lupdate 后就可以在源代码目录下发现 english.ts chinese.ts文件了.
2.用语言翻译家打开这两个文件将字符串翻译成对应的语言即可然后保存
3.通过qt语言家把.ts文件生成.qm文件提供给程序使用.
qt语言家界面点击 文件-->发布 即可在 .ts同级目录下找到 同名的.qm文件
然后将.qm文件放在合适的路径 qrc也好,直接扔到一个文件夹也好 只要能找到即可
软件开发,项目订制-- http://qtapp.taobao.com
联系qq: 2216144104