Qt 国际化 (中英文切换)

  1. 在工程中,新建一个资源文件,命名为translator
    Qt 国际化 (中英文切换)_第1张图片
    Qt 国际化 (中英文切换)_第2张图片

资源文件在工程目录中的结构
在这里插入图片描述
2. 修改pro
在pro文件中添加


TRANSLATIONS  +=  resources/tr_zh.ts  \
        resources/tr_en.ts

3.代码中所有需要翻译的字符串用tr("")包含 eg: tr(“中文”)

4.如下图,点击更新翻译(lupdate)
Qt 国际化 (中英文切换)_第3张图片
此时会在工程目录新建一个resources文件夹 ,并在其中生成了 tr_en.ts 和 tr_zh.ts 两个文件
5. 打开tr_zh.ts (翻译成中文)





    Form
    
        
        中文
        
    



修改  中文
  1. 打开tr_en.ts(翻译成英文)




    Form
    
        
        中文
        
    


修改
中文
中文
Chinese

除了上述手动修改,还可以使用Qt Linguist 工具进行编辑

  1. 如下图,点击发布翻译(lrelease)
    Qt 国际化 (中英文切换)_第4张图片
    会在resources中 生成 tr_en.qm 和tr_zh.qm两个文件
  2. 将qm文件添加到工程中
    在这里插入图片描述
  3. 切换
#include 
private:
    QTranslator translator;
 if(!qApp->removeTranslator(&translator)){
        qDebug()<<"remove  error....";
    }

    if( 中文显示 ){
        if(translator.load(":/resources/tr_zh.qm")){
            qApp->installTranslator(&translator);
        }else{
            qDebug()<<"load  Chinese file error";
        }
    }else  if(英文显示){
        if(translator.load(":/resources/tr_en.qm")){
            qApp->installTranslator(&translator);
        }else{
            qDebug()<<"load  English  file  error";
        }
    }

**

注:翻译文件加载的位置必须在界面实例化之前完成,否则是没有效果的

**

你可能感兴趣的:(Qt 国际化 (中英文切换))