QT多国语言需要用到三个工具:
l Lupdate:生成ts文件
l Linguist:翻译ts文件中的字符串
l Lrelease:生成qm文件
这三个工具都是QT自带的工具,在相关的安装路径下。
1. 准备一个界面工程
新建工程命名为: cabagge_langsw, 使用设计师设计界面设计如下
设置下拉框内容的时候不用翻译,其他显示的字符串需要翻译
如果手工代码更新界面的内容,需要在字符串前面使用tr函数
2. 配置ts文件
在.pro中添加
TRANSLATIONS= lang_en.ts \
lang_zh.ts
需要支持多少种语言,则就添加多少个文件,每个文件对应一种语言的翻译
3. 生成.ts文件
工具->外部->Qt语言家->更新翻译,将生成翻译文件ts文件(lang_en.ts 和lang_zh.ts )
【注意】这一步一定要在编译完后再做,因为ui_xxx.h编译后才生成.
4. 使用linguist.exe翻译文件
Linguist.exe在QT的安装路径下,
如我的是在:D:\DevSoft\Qt\Qt5.4.2\5.4\mingw491_32\bin
通过Linguist打开.ts文件,给每个需要翻译的字符添加对应的翻译语言
5. 发布生成qm文件
每个字符翻译完之后,需要转换为qm文件
在当前路径下生成对应的qm文件。
每个ts文件都重复做上面两个步骤。
6. 添加代码:切换时更新翻译语言的版本
添加切换下拉框的变化的槽函数:
7. 添加更新界面字符串的响应
调用installTranslator方法后,系统会自动给每个窗体发送信号并告知changeEvent槽event产生,在要切换语言的每个窗体中都要重写changeEvent这个方法,格式基本差不多:
8. 效果图: