Qt 翻译文件的加载
2017-01-24 20:11
519 查看
翻译文件的加载主要有两部分,一个是自己的,另外一个是qt自带的,可以在qt的安装目录下找到!(qt_zh_CN.qm)
一般情况下,我们会把翻译文件都放在一个固定的目录下,下面分享一个接口,指定目录下遍历加载翻译文件!
一般情况下,我们会把翻译文件都放在一个固定的目录下,下面分享一个接口,指定目录下遍历加载翻译文件!
//加载翻译文件 bool setTranslator(const QString strPath) { bool bRet = false; if (strPath.isEmpty() || !QFile::exists(strPath)) { return bRet; } QTranslator * pTrans = new QTranslator(); if (pTrans->load(strPath)) { QApplication::installTranslator(pTrans); bRet = true; } else { delete pTrans; pTrans = NULL; } return bRet; }
void searchQmFile(const QString & strPath) { QDir dir(strPath); if (!dir.exists()) { return; } dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot); dir.setSorting(QDir::DirsFirst); // 文件夹优先 // 转换成一个List QFileInfoList list = dir.entryInfoList(); if (list.size() < 1) { return; } int i = 0; do { QFileInfo fileInfo = list.at(i); QString tt = fileInfo.fileName(); // 如果是文件夹 bool bisDir = fileInfo.isDir(); if (bisDir) { searchQmFile(fileInfo.filePath()); } else { bool bQm = fileInfo.fileName().endsWith(".qm"); setTranslator(fileInfo.filePath()); } i++; } while (i < list.size()); }
/将当前目录设置为程序的所在目录 QDir::setCurrent(a.applicationDirPath()); QString strLanPath = QObject::tr("%1\\Language_zh").arg(QDir::currentPath()); strLanPath = QDir::toNativeSeparators(strLanPath); //读取翻译文件 searchQmFile(strLanPath);
相关文章推荐
- Qt加载翻译文件
- qt 加载翻译文件 qm
- Qt加载翻译文件
- QT 添加翻译文件以及加载翻译文件和右键翻译
- Qt制作翻译文件和加载翻译文件
- qt之加载本地翻译文件
- 为Qt应用程序加载翻译文件
- Qt加载翻译文件(2)
- Qt加载翻译文件(2)
- Qt加载翻译文件
- Qt 加载了qm文件翻译无效的bug的分享
- qt 翻译文件加载(两个)
- 【翻译】oc.lazyLoad with Angular ui router(按需加载文件)
- 找到Qt程序所有依赖库的简便方法,带翻译文件
- Qt的翻译文件QTranslator不能使用问题总结(原)
- VS2010中Qt翻译文件的创建与使用范例
- QT运行时加载UI文件产生的Designer警告
- QT webkit 中加载flash文件
- QT加载office文件简单方法
- QT5 添加多个qm翻译文件