Qt 翻译 多国语言 本地化。。。Step by Step
2015-01-29 01:40
513 查看
国际化!!!!!
创建一个空白的Qt工程
添加一个main.cpp
#include <QApplication>
#include <QPushButton>
#include <QLayout>
#include <QTranslator>
int main(int argc, char *argv[])
{
QApplication a(argc, argv)
QWidget* pWnd = new QWidget();
QPushButton* pBtn = new QPushButton(QPushButton::tr("Test Translate"))
QVBoxLayout* pVlayout = new QVBoxLayout();
pVlayout->addWidget(pBtn)
pWnd->setLayout(pVlayout);
pWnd->show();
return a.exec();
}
即可运行起来。。。。 此工程中,只有按钮上有文字。。。运行如下图示:
在工程中加入: TRANSLATIONS += testTrans_en.ts (ts文字名可随意取)
然后执行: Tools -> External -> Linguist -> Update Translations(lupdate)
提示完成: /usr/local/Qt5.4.0/5.4/gcc_64/bin/lupdate" finished
在工程中,可以发现多了一个 testTrans_en.ts 文件,此文件可用文本编辑器打开进行查看,如:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US">
<context>
<name>QPushButton</name>
<message>
<location filename="main.cpp" line="13"/>
<source>Test Translate</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
此步骤是将工程中的文字(加tr等包含的文字)进行提取到ts文件中
接下来,在终端运行 x@x:~$ linguist 打开 Qt Linguist 翻译工具,对文字进行逐个翻译并保存
在工程中再执行: Tools -> External -> Linguist -> Release Translations(lrelease)
结果提示:/usr/local/Qt5.4.0/5.4/gcc_64/bin/lrelease" finished
在工程中,可以发现多了一个 testTrans_en.qm文件,此文件为二进制格式文件,即我们最终使用的翻译文件
然后添加Qt资源,将testTrans_en.qm添加进来
修改main.cpp文件,将翻译文件添加进来,最终执行
#include <QApplication>
#include <QPushButton>
#include <QLayout>
#include <QTranslator>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTranslator qtTranslator;
qtTranslator.load(":/translate/testTrans_en.qm")
a.installTranslator(&qtTranslator);
QWidget* pWnd = new QWidget();
QPushButton* pBtn = new QPushButton(QPushButton::tr("Test Translate"))
QVBoxLayout* pVlayout = new QVBoxLayout();
pVlayout->addWidget(pBtn)
pWnd->setLayout(pVlayout);
pWnd->show()
return a.exec()
}
最终执行结果:
工程下载:
我的资源中:
Qt5翻译基础工程-Translate.tar.gz Qt5 多国语言 C++ Ubuntu 14.04 Qt5
http://download.csdn.net/detail/yulinxx/8405723
创建一个空白的Qt工程
添加一个main.cpp
#include <QApplication>
#include <QPushButton>
#include <QLayout>
#include <QTranslator>
int main(int argc, char *argv[])
{
QApplication a(argc, argv)
QWidget* pWnd = new QWidget();
QPushButton* pBtn = new QPushButton(QPushButton::tr("Test Translate"))
QVBoxLayout* pVlayout = new QVBoxLayout();
pVlayout->addWidget(pBtn)
pWnd->setLayout(pVlayout);
pWnd->show();
return a.exec();
}
即可运行起来。。。。 此工程中,只有按钮上有文字。。。运行如下图示:
在工程中加入: TRANSLATIONS += testTrans_en.ts (ts文字名可随意取)
然后执行: Tools -> External -> Linguist -> Update Translations(lupdate)
提示完成: /usr/local/Qt5.4.0/5.4/gcc_64/bin/lupdate" finished
在工程中,可以发现多了一个 testTrans_en.ts 文件,此文件可用文本编辑器打开进行查看,如:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US">
<context>
<name>QPushButton</name>
<message>
<location filename="main.cpp" line="13"/>
<source>Test Translate</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
此步骤是将工程中的文字(加tr等包含的文字)进行提取到ts文件中
接下来,在终端运行 x@x:~$ linguist 打开 Qt Linguist 翻译工具,对文字进行逐个翻译并保存
在工程中再执行: Tools -> External -> Linguist -> Release Translations(lrelease)
结果提示:/usr/local/Qt5.4.0/5.4/gcc_64/bin/lrelease" finished
在工程中,可以发现多了一个 testTrans_en.qm文件,此文件为二进制格式文件,即我们最终使用的翻译文件
然后添加Qt资源,将testTrans_en.qm添加进来
修改main.cpp文件,将翻译文件添加进来,最终执行
#include <QApplication>
#include <QPushButton>
#include <QLayout>
#include <QTranslator>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTranslator qtTranslator;
qtTranslator.load(":/translate/testTrans_en.qm")
a.installTranslator(&qtTranslator);
QWidget* pWnd = new QWidget();
QPushButton* pBtn = new QPushButton(QPushButton::tr("Test Translate"))
QVBoxLayout* pVlayout = new QVBoxLayout();
pVlayout->addWidget(pBtn)
pWnd->setLayout(pVlayout);
pWnd->show()
return a.exec()
}
最终执行结果:
工程下载:
我的资源中:
Qt5翻译基础工程-Translate.tar.gz Qt5 多国语言 C++ Ubuntu 14.04 Qt5
http://download.csdn.net/detail/yulinxx/8405723
相关文章推荐
- VS中使用QT,多国语言翻译问题
- Qt实现多国语言(即界面翻译)可实时进行切换
- VS中使用QT,多国语言翻译问题
- Qt实现多国语言(即界面翻译)可实时进行切换
- 水煮丫 多国语言翻译小软件
- iPhone APP支持多国语言开发(本地化)
- UNICON是一个架构描述语言 翻译 BY Lychee
- 在ASP.NET 2.0中实现语言本地化(多国语言)
- QT_StepByStep(2)--滑动杆的实现
- Qt翻译文件结合VS实现语言切换(多语言国际化)
- xcode4 本地化多国语言
- Qt 多国语言
- Qt 5.10 多语言动态翻译
- 图文并茂教你做ios本地化(支持多国/地区语言)
- Coherence Step by Step 第一篇 入门(二) 安装Oracle Coherence(翻译)
- QT实现动态翻译和语言切换
- 使用谷歌翻译/微软翻译迅速使你的博客支持多国语言
- QT_StepByStep(1)--初体验hello world!
- [翻译]Rendering a web page – step by step 网页渲染过程拆解
- QT多语言翻译工作