QT5实现语言国际化,中英文界面动态切换
1、打开Qt,在自己的工程文件中,点击 .pro 文件,在文件中添加
TRANSLATIONS = english.ts chinese.ts
2、点击Qt的工具 -> 外部 -> Qt语言更新翻译(lupdate),生成english.ts和chinese.ts文件,生成的文件在工程目录文件夹下可找到
(注意:如果添加 TRANSLATIONS = english.ts chinese.ts 后做第二步无效,需要qmake一下)
3、在自己下载的qt软件中找到 linguist.exe并双击启动(我的路径是 D:\qt\qt5.8\5.8\mingw53_32\bin\linguist.exe)
点击文件 -> 打开 -> 选择之前生成的两个chinese.ts、english.ts文件打开。
打开之后弹出一个选框,如果打开的是chinese.ts,那么在目标语言中选择中文,代表将所有语言转化为中文
如果打开的是english.ts,那么在目标语言中选择英文,代表将所有语言转化为英文
打开后如下图:
上下文框是你的每个界面widget,字符串框是在该界面的所有控件
选择一个控件比如label,在源文框中,将汉语和英语译文填上。
然后点击文件 -> 保存全部;点击文件 -> 发布全部;
此时会在项目文件目录下生成两个文件chinese.qm和english.qm;
4、右键点击工程根目录,选择新建一个Qt资源文件
或者自己工程文件的资源文件resources
有了资源文件后,将chinese.qm和english.qm加入到资源文件中,这两个就是需要调用的文件
5、代码:
#include <QTranslator>
QTranslator tran.load(":/english.qm");
qApp->installTranslator(&tran);
就可进行界面文字变换成英文
#include <QTranslator>
QTranslator tran.load(":/chinese.qm");
qApp->installTranslator(&tran);
同理可进行界面文字变换成英文