Qt国际化之动态语言切换

使用Qt语言学家生成完对应语言的.qm文件并放在../translations目录下。system.ini中存放着默认的系统语言 DEFAULTLANGUAGE。
1.    在使用的类的*.h文件中声明QTranslator translator;变量
2.    在*.cpp中使用
void DisplayDemo::setLanguage()
{
    QString path = qApp->applicationDirPath();
    QString fileName = path+"/system.ini";
    QSettings settings(fileName, QSettings::IniFormat);
    // defaultLanguage
    settings.setValue("DEFAULTLANGUAGE", defaultLanguage);
    switch(defaultLanguage)
          {
      case 1:
          translator.load(path+"/translations/display_en.qm",path);
          break;
      case 0:
      default:
          translator.load(path+"/translations/display_zh.qm",path);
          }
    qApp->installTranslator(&translator);
}
在需要改换语言的地方调用此方法 就可以了!!

 

 

==============================

引用
引用第6楼shiroki于2009-07-16 10:21发表的  :
楼主的这个方法很不Qt哦, 在Qt里不用去读系统的配置, 应该用QLocale去获得当前的语言, 这样才能跨平台的说。
QLocale QLocale::system ()   [static]
Returns a QLocale object initialized to the system locale.
On Windows and Mac, this locale will use the decimal/grouping characters and date/time formats specified in the system configuration panel.



用上shiroki MM的这个建议就完美多啦。
QM文件存储的时候将名称 与QLocale::system的返回值关联起来。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值