Bootstrap

QT的多语言实现

基本流程是:先生成ts文件,然后生成qm文件,最后通过QTranslator类来加载qm文件,实现多语言包的切换

在Qt Creator中生成多国语言包

1生成ts文件

在QT的项目文件(.pro)中添加:TRANSLATIONS = XXX.ts YYY.ts(如果是多行,则用 \ 分割)

//.pro文件
QT       += core gui
TRANSLATIONS= LOGIN.ts
SOURCES += main.cpp\
        mainwindow.cpp \
    logindialog.cpp
HEADERS  += mainwindow.h \
    logindialog.h

FORMS    += mainwindow.ui \
    logindialog.ui

然后执行工具->外部->QT语言家->更新翻译(lupdate),如下图所示,

这里写图片描述

执行完之后项目下就会生成对应的XXX.ts、YYY.ts文件。

2生成.qm文件

利用QT语言家:Qt Linguist打开生成的ts文件,将里面需要翻译的地方写上对应的语言,如下图所示

这里写图片描述

ts文件翻译完成后,执行Qt Creator中的工具->外部->QT语言家->部署翻译(lrelease)就会生成最终要用到的qm文件,见上上图

3加载qm文件

//main.cpp
QApplication a(argc, argv);
...
QTranslator trans;
QString strPath = QDir::currentPath();
strPath += "/XXX.qm";
trans.load(strPath); 
a.installTranslator(&translator); 

在VS中生成多国语言包

1生成ts文件

假设你已经新建了一个工程,选择Qt->Create new Translation File

这里写图片描述

弹出下图对话框,选择你需要的语言

这里写图片描述

2生成qm文件

利用QT语言家:Qt Linguist打开生成的ts文件,将里面需要翻译的地方写上对应的语言,如下图所示

这里写图片描述

在QT语言家的菜单栏选择:文件->发布

这里写图片描述

3加载qm文件

同上.

PS基于Qt Creator5.7和VS2010

;