• 4492阅读
  • 3回复

请教qt-2.3.7 动态国际化的问题 [复制链接]

上一主题 下一主题
离线guoyun_he
 

只看楼主 倒序阅读 楼主  发表于: 2007-12-07
开发平台:qt-2.3.7+redhat
    向大家请教国际化的问题, 我在主函数开始的地方添加如下代码可以实现国际化:
  1.     QTranslator *translator = new QTranslator( 0 );
  2.     translator->load( "en.pm", "." );
  3.     qApp->installTranslator(translator);

    但是我现在想在mainwindows里面通过菜单选择不同的翻译,我查阅了qt4的资料,
里面有专门的函数可以实现。但是在qt-2.3.7里面没有相应的函数。如果我采用下面的代码实现语言选择,却没有任何效果。
  1. void MainWindow::slotLanguageSetupCH()
  2. {
  3.     QTranslator *translator = 0;
  4.     translator = new QTranslator( 0 );
  5.     translator->load( "ch.pm", "." );
  6.     qApp->installTranslator( translator );
  7.     update();
  8. }

  1. void MainWindow::slotLanguageSetupEN()
  2. {
  3.     QTranslator *translator = 0;
  4.     translator = new QTranslator( 0 );
  5.     translator->load( "en.pm", "." );
  6.     qApp->installTranslator( translator );
  7.     update();
  8. }

            请教各位大虾,我应该如何在qt-2.3.7中实现动态加载语言包。
离线shiroki

只看该作者 1楼 发表于: 2007-12-12
重新load翻译文件之后,界面上所有有文字的控件都要重新调用setText或等价函数。 因为setText会在底层调用翻译函数。
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线guoyun_he

只看该作者 2楼 发表于: 2007-12-14
谢谢,我研究了一天,看来没有其他更好的方法了!
离线mzl626

只看该作者 3楼 发表于: 2007-12-17
建议采用观察者模式来实现,将每个类中的所有设置文本的信息放再一个函数中,将Subject类注册!
快速回复
限100 字节
 
上一个 下一个