本文内容学习自Johan Thelin的《Foundations of Qt Development》,欢迎交流。
本文中的例子是将软件版本在中英文之间动态切换,在书中归属语言国际化的章节Internationalization and Localization
。在实现上用到了lupdate, linguist, lrelease等qt自带的工具,中间文件有翻译源文件ts文件,翻译后文件qm文件。
我们的工程是internal
,文件有:
.
├── chinese.qm (由.pro生成后的翻译文件)
├── chinese.ts (由.pro生成后的翻译源文件)
├── english.qm (由.pro生成后的翻译文件)
├── english.ts (由.pro生成后的翻译源文件)
├── internal (生成后的可执行文件)
├── internal.pro
├── internal.pro.user
├── main.cpp
├── mainwindow.cpp
├── mainwindow.h
└── mainwindow.ui
运行效果
ts文件的生成
在pro中加上:
TRANSLATIONS += english.ts chinese.ts
然后,使用lupdate生成xml文件(.ts文件).
[edemon@CentOS internal]$ lupdate internal.pro
Updating 'english.ts'...
Found 8 source text(s) (8 new and 0 already existing)
Updating 'chinese.ts'...
Found 8 source text(s) (8 new and 0 already existing)
[edemon@CentOS internal]$ ls
chinese.ts internal.pro main.cpp mainwindow.cpp mainwindow.ui ui_mainwindow.h
english.ts internal.pro.user main.o mainwindow.h Makefile
xml内容: