Chinaunix首页 | 论坛 | 博客
  • 博客访问: 121473
  • 博文数量: 17
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 190
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-29 13:33
文章分类

全部博文(17)

文章存档

2009年(3)

2008年(14)

我的朋友

分类: LINUX

2008-05-05 08:40:29

我使用的是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 //信息翻译载入
  在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就行了。
阅读(1486) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:arm开发板 PC环境搭建(原创)

给主人留下些什么吧!~~