博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

pplinux

看庭前花开花落,荣辱不惊,望天上云卷云舒,去留无意。
   pplinux.cublog.cn
关于作者  
姓名:龙蚊
职业:网络民工
年龄:256
位置:zigbee定位
个性介绍:

我的分类  




qt-2.3.7的国际化 i18n
我使用的是qt/e 2.3.7,由于qt/e本身使用的是 Unicode作为内部编码,所以国际化比较容易.
首先在你需要翻译的文字上 添加 tr()函数,比如:tr("hello,world");如果编译是时候提示错误,可以使用
Qobject::tr(),对于需要动态生成的字符串,用以下格式:tr("button%d").arg(i);
接下来步骤为 :
1.用findtr提取信息:
   findtr main.cpp > i18n.po
  这将把main.cpp中有tr()的文字提取到i18n.po中.
  当你有多个.cpp文件需要翻译事,
   findtr a.cpp b.cpp > i18n.cpp
  注意:必需把需要翻译的文件保存为 编码格式:GB2312  或GBK 
2.复制i18n.po为i18n_gb.po
3.打开i18n_gb.po,更改"charset=Unicode\n"(适用于我使用的Fedora,其他比如实验箱需改为gb2312)
4.用msg2qm转换i18n_gb.po为qm文件
  msg2qm在qt-2.3.10/tools/msg2qm文件下,需要编译为本地可执行文件
 msg21m i18n_gb.po i18n_gb.qm
5.使用i18n_gb.qm
  在main.cpp 中
  include <qtranslator.h>//信息翻译载入
  在main函数中添加如下语句:
  int main( int argc, char ** argv )
{
    QApplication a( argc, argv );
    a.setFont(QFont("Times", 16, QFont::Normal)); //设置字体, 使中文程序尽量使用点阵字体. 
    QTranslator *translator = new QTranslator(0);//建立 Translator, 用于载入信息文件
    translator->load("i18n_gb.qm", ".");
    a.installTranslator( translator );
    ...
}
vi fontdir
yourfont yourfont.ttf FT n 50 0 su 100,120,140,160
makeqpf yourfont 0-ff,4e00-fa29
 
 
实际说明:一般对于win XP来水字库用的基本是gbk码,可以直接cp到linux下,*.po文件改GBk就行了。

 发表于: 2008-05-05,修改于: 2008-05-05 08:40 已浏览157次,有评论0条 推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:0.00675

京ICP证041476号