打印

国际化的问题!

国际化的问题!

在test.pro文件中设置:
TRANSLATIONS=chinese.ts
DEFAULTCODEC=zh_CN.GBK
然后使用lupdate test.pro产生chinese.ts
翻译该文档,然后
lrelease test.pro产生chinese.qm
在程序中调用方式如下:
QTranslator translator(this);
translator.load("chinese",".");
qApp->installTranslator(&translator);

为什么出现不了中文呢?
环境是在magic rc2
magic的默认的locale是zh_CN.GBK吧?

谢谢各位了,折腾了好几天了,都没弄出来。

TOP

呵呵~

那个翻译文件要复制到指定位置才行哈~

TOP

你在 konsole 下起动程序,它会报告在指定位置找不到 zh_CN.GBK.qm 你把文件放到那里就行了。
不推荐使用 qt  的国际化机制,强列建议使用 gettext 技术,翻译 po 要比 ts 文件方便,继承翻译也容易。

TOP

我修改了test.pro,
TRANSLATIONS=zh_CN.GBK.ts

应该.qm文件是找到了,不过现在出现的是方块:
附件: 您所在的用户组无法下载或查看附件

TOP

在main.cpp中设定字符集为GBK

TOP

在main.cpp中添加:
setlocale(LC_ALL,"zh_CN.GBK");
好像没有作用。

附上我的程序!
附件: 您所在的用户组无法下载或查看附件

TOP

[code:1]#include <qtextcodec.h>

  int main( int argc, char ** argv )
  {
      QApplication a( argc, argv );
      a.setDefaultCodec( QTextCodec::codecForName("GB18030") );
..................

}

[/code:1]

TOP

不好意思,是我的问题。
应该是使用linguist来翻译,我以为是可以直接使用vi编辑。
这样的话:
a.setDefaultCodec( QTextCodec::codecForName("GB18030") );
就不需要了。

还是要多谢谢各位老大。唉,入门可真不容易。找资料太难找了。

TOP

如果用那种方法就把软件作死了。它应该通过读取 LANG 环境变量来显示不同文字,但这也不是好办法,gnome 就是这么干的,结果我想看英文的界面还得改环境变量,不能混合显示。比较合理的方式是默认英文,用户可以自己选择具体语言。

TOP

[quote:8656ce9aac="KDE"]你在 konsole 下起动程序,它会报告在指定位置找不到 zh_CN.GBK.qm 你把文件放到那里就行了。
不推荐使用 qt  的国际化机制,强列建议使用 gettext 技术,翻译 po 要比 ts 文件方便,继承翻译也容易。[/quote]


and qt will migrate to standard gettext in a foreseeable future
quietly update itself

TOP

KDE,请问我使用gettext的步骤对吗?

使用xgettext生成.po文件,使用kbabel翻译,然后再使用msgfmt生成mo文件,将mo文件安装到/usr/share/locale/zh_CN/LC_MESSAGES目录下,
程序中使用
setlocale(LC_ALL,"");
textdomain(mo文件);

不知道为什么,总是乱码?
谢谢!

TOP