Qt多语言国际化

xiaoxiao2021-03-01  19

作者

QQ群:852283276 微信:arm80x86 微信公众号:青儿创客基地 B站:主页 https://space.bilibili.com/208826118

参考

Qt 之国际化 实现多国语言的动态切换 Qt 国际化之二:多国语界面动态切换的实现

制作翻译文件

打开pro文件添加,

TRANSLATIONS += \ image/shelf_zh.ts \ image/shelf_en.ts

我这里添加了中文和英文,我的代码里都是英文的,点击菜单栏 “工具”-> “外部” -> “Qt语言家” -> “更新翻译(lupdate)”,将生成语言文件 打开Qt Linguist,打开之前生成的文件,或者用其他文本编辑器编辑, 编辑完之后,发布语言文件,使用Qt Linguist或者Qt Creator发布。

加载

上代码,一定要在widget之前加载translator,否则没效果。

void trHelper::trHelperInit() { trHelper::InitTrCfg(); trHelper::LoadTrCfg(); trHelper::trHelperSetLang(lang); //qApp->installTranslator(&tl); } void trHelper::trHelperSetLang(QLocale::Language l) { qApp->removeTranslator(&tl); if (l == TR_LANG_EN) { //qDebug() << "trHelperSetLang en"; tl.load(QString(":/image/shelf_en")); } else if (l == TR_LANG_CH) { //qDebug() << "trHelperSetLang zh"; tl.load(QString(":/image/shelf_zh")); } else { return; } qApp->installTranslator(&tl); lang = l; trHelper::SaveTrCfg(); }

关于动态加载,这里的方法就不是很方便了,没有ui文件的方式方便。

转载请注明原文地址: https://www.6miu.com/read-3450179.html

最新回复(0)