加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Linux/QT 多语言的实现方法:Linguist

(2011-11-11 17:15:35)
标签:

linux

qt

多语言

国际化

实现

方法

linguist

tr

it

分类: 编程技术
    QT的Linguist工具主要用在项目的多语言翻译处理过程中,所以先简单介绍一下整个多语言处理过程,最后介绍Linguist的用法。
(一)QT项目实现多语言,必须做两件事:
1)确保每一个用户可见的字符串都使用了tr()函数。
2)在应用程序启动的时候,使用QTranslator载入一个翻译文件(.qm)。
tr() 的用法:
QString str = tr("Hello World!");
在main()函数里载入翻译文件:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    /// 加载翻译文件
    QTranslator translator;
    if(translator.load(QObject::tr("test_cn.qm")))/// 注意路径的正确性
    {
         a.installTranslator(&translator);
    }
    /// 确保在初始化窗口之间加载翻译文件
    ……
}
注意:翻译文件加载的位置必须在界面实例化之前完成。
(二)生成.qm翻译文件
1、在该应用程序的.pro文件文件中添加TRANSLATIONS项,可分别对应于不同的语言,如:test_cn.ts,名字可以自己定义,后缀名.ts不可变动。
.ts是可读的翻译文件,使用简单的XML格式;而.qm是经过.ts转换而成的二进制机器语言
在.pro文件中添加的内容为:

#翻译文件的生成名称
TRANSLATIONS += test_cn.ts

#强制要求所有字符串都是可翻译的:tr()
DEFINES += QT_NO_CAST_FROM_ASCII


2、翻译文件。分三步来完成:
1)运行lupdate, 从应用程序的源代码中提取所有用户可见的字符串。
2)使用Qt Linguist 翻译该应用程序。
3)运行lrelease,生成二进制的.qm 文件。
以上三步均可由QT自带的命令行控制台,启动方法:开始--->所有程序--->Qt by Nokia v4.7.4(OpenSource)--->Qt 4.7.4 Command Prompt
启动命令行后,对应输入如下命令:
1)lupdate  test.pro //生成相应的.ts 文件
2)linguist //启动Linguist语言翻译工具,翻译相应的可见字符串
3)lrelease test.pro //将翻译好的文件生成.qm文件

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

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有