QT应用程序之国际化实例步骤及可能出错的细节

参考原址:


http://blog.163.com/bingcaihuang@126/blog/static/198942122010103115655557/


下面是我的操作实例:

1)编写QT QWidget应用程序,命名为testTranslate,先不改动main.cpp文件

2)在testTranslate.h文件中类声明处添加以下代码(添加要包含的头文件略)

private:

    QPushButton* m_btnShow;
    QLabel* m_labText;
3)在testTranslate.cpp文件中类构造函数中添加以下代码(注意tr()部分)
    m_btnShow = new QPushButton(tr("show"),this);
    m_btnShow->setGeometry(30,100,125,28);
    m_btnShow->show();
    m_labText = new QLabel(tr("hello,World!"),this);
    m_labText->setGeometry(50,40,105,28);
    m_labText->show();
4)运行程序,显示没有国际化(即翻译之前)的界面,英文的,就不截图了


5)关键部分开始了:打开testTranslate.pro文件,添加TRANSLATIONS = testTranslate.ts(你希望保存的名字)

6)打开QT命令窗口:输入 lupdate -verbose E:\QTWorkspace\testTranslate\testTranslate.pro 编译出.ts文件

7)打开QT命令窗口:输入 linguist,选择文件导入编译好的.ts文件 ,开始翻译工作,注意:你的工作应该是在 最左边栏 的文件前出现了对号时结束(意味着确认翻译),否则即使后面编译出.qm也无效

8)打开QT命令窗口:输入 lrelease -verbose E:\QTWorkspace\testTranslate\testTranslate.ts 导出.qm文件

9)打开main.cpp文件:在QApplication a(argc, argv);下加入以下代码:

    QTranslator translator;

    translator.load(":/qm/testTranslate.qm");
    a.installTranslator(&translator);
10)是的,你没看错,我的文件名前多了路径名,注意这里也是很多人失败的原因:
	.qm文件也是资源文件,需要如图片一样添加进项目,才可以加载的。

就这些了,祝你成功!




QT-Linguist工具主要用在项目的多语言翻译处理过程中,所有先简单介绍一下整个多语言处理过程,最后介绍Linguist的用法。


(一)QT项目实现多语言,必须做两件事:
1)确保每一个用户可见的字符串都使用了tr()函数。
2)在应用程序启动的时候,使用QTranslator载入一个翻译文件(.qm)。


tr() 的用法:
caseCheckBox = new QCheckBox(tr("Match &case"));
在main()函数里载入翻译文件:
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    //翻译程序
   QTranslator translator;
    translator.load("spreadsheet_cn.qm");
    app.installTranslator(&translator);
    ……
}
注意:翻译文件加载的位置必须在界面实例化之前完成。


(二)生成.qm翻译文件
1、在该应用程序的.pro文件文件中添加TRANSLATIONS项,可分别对应于不同的语言,如:spreadsheet_cn.ts, 对应中文,名字可以自己定义,后缀名.ts不可变动。<.ts是可读的翻译文件,使用简单的XML格式;而.qm是经过.ts转换而成的二进制机器语言>

2、翻译文件。分三步来完成:
1)运行lupdate, 从应用程序的源代码中提取所有用户可见的字符串。
2)使用Qt Linguist 翻译该应用程序。
3)运行lrelease,生成二进制的.qm 文件。
以上三步均需用到QT自带的命令行控制台,启动方法:开始--->所有程序--->Qt by Nokia v4.6.3 (OpenSource)--->Qt 4.6.3 Command Prompt

启动命令行后,对应输入如下命令:
1)lupdate –verbose spreadsheet.pro //生成相应的.ts 文件(将spreadsheet.pro换成你自己的)
2)linguist //启动Linguist语言翻译工具,可以翻译相应可见字符串
3)lrelease –verbose spreadsheet.pro //将翻译好的文件生成.qm文件

(三)Linguist 语言工具的使用
1)启动:命令行或者开始菜单均可
2)打开:工具界面中的File--->Open,可以打开所需的 .ts 文件
3)翻译:界面中部的翻译栏,两行:第一行:Source Text 第二行:… Translation, 在第二行进行相应的翻译即可,翻译完一条之后点击“确定下一个”按钮。
4)发布:点击File--->Release, 生成 .qm 文件。(与命令行的效果一样)










                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值