首页| 论坛| 消息

标题:请教qt-2.3.7 动态国际化的问题
作者:guoyun_he
日期:2007-12-07 14:03
内容:

开发平台:qt-2.3.7+redhat
向大家请教国际化的问题, 我在主函数开始的地方添加如下代码可以实现国际化:
QTranslator *translator = new QTranslator( 0 );
translator->load( "en.pm", "." );
qApp->installTranslator(translator);
但是我现在想在mainwindows里面通过菜单选择不同的翻译,我查阅了qt4的资料,
里面有专门的函数可以实现。但是在qt-2.3.7里面没有相应的函数。如果我采用下面的代码实现语言选择,却没有任何效果。
void MainWindow::slotLanguageSetupCH()
{
QTranslator *translator = 0;
translator = new QTranslator( 0 );
translator->load( "ch.pm", "." );
qApp->installTranslator( translator );
update();
}
void MainWindow::slotLanguageSetupEN()
{
QTranslator *translator = 0;
translator = new QTranslator( 0 );
translator->load( "en.pm", "." );
qApp->installTranslator( translator );
update();
}
请教各位大虾,我应该如何在qt-2.3.7中实现动态加载语言包。


#1 [shiroki 12-12 11:35]
重新load翻译文件之后,界面上所有有文字的控件都要重新调用setText或等价函数。 因为setText会在底层调用翻译函数。
#2 [guoyun_he 12-14 14:52]
谢谢,我研究了一天,看来没有其他更好的方法了!
#3 [mzl626 12-17 09:25]
建议采用观察者模式来实现,将每个类中的所有设置文本的信息放再一个函数中,将Subject类注册!

回复 发表
主题 版块