zoukankan      html  css  js  c++  java
  • QT国际化

    写的比较简洁

    语言文件:

    ts:编辑翻译用的,是xml,可以用linguist(qt语言专家)或者Editplus进行翻译

    qm:这种文件是ts的release版,无法编辑,发布的时候用这个

    操作:

    1.首先打开pro,添加TRANSLATIONS  = xxxx_zh_CN.ts xxxxx.en.ts

    2.然后用lupdate xxx.pro 来生成这两个ts文件

    3.翻译,qt语言专家或者其他编辑器

    4.lrelase  xxx.pro或者qt语言专家中的发布或者qtcreator-->工具--->外部---->发布/更新

    接下来是写代码了:

     1 int main(int argc, char *argv[])
     2 
     3 {
     4 
     5     QApplication app(argc, argv);
     6 
     7  
     8 
     9     QString locale = QLocale::system().name();   //locale为zh_CN
    10 
    11  
    12 
    13     QTranslator translator;
    14 
    15     translator.load(QString("xxxx_") + locale);    //这是动态变化的一个手段,qm文件
    16 
    17     app.installTranslator(&translator);
    18 
    19  
    20 
    21     MainWindow mainWindow;
    22 
    23     mainWindow.show();
    24 
    25     return app.exec();
    26 
    27 }

    如果要手动切换,可以加一个手动切换函数:

     1 void MainWindow::changeLanguage()
     2 {      
     3     QString qmName = m_bChinese ? "chinese.qm" : "english.qm";
     4 
     5     m_bChinese = !m_bChinese;
     6 
     7     if (m_pTranslator->load(qmName,       QApplication::applicationDirPath()))     
     8 
     9     {         
    10 
    11         qApp->installTranslator(m_pTranslator);         
    12 
    13         ui->retranslateUi(this);
    14 
    15     }
    16 
    17  }
  • 相关阅读:
    Linux上安装Tomcat
    SQLServer2008 关于while循环
    [转]接口和抽象类
    windows 装XP系统
    SQLServer2008 表与表之间的数据导入
    问题消灭机
    报错。。。。。。。。。。
    疑问...........
    SQLServer In和Exists
    struts2 访问一个action的时候出现多次重复访问问题(2次或者3次)
  • 原文地址:https://www.cnblogs.com/magicdmer/p/4441524.html
Copyright © 2011-2022 走看看