QT的多语言实现

来源:互联网 发布:巅峰网络传奇 编辑:程序博客网 时间:2024/06/06 12:43

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

在Qt Creator中生成多国语言包

1生成ts文件

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

//.pro文件QT       += core guiTRANSLATIONS= LOGIN.tsSOURCES += main.cpp\        mainwindow.cpp \    logindialog.cppHEADERS  += mainwindow.h \    logindialog.hFORMS    += 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.cppQApplication 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