1、获取系统支持的语言
QStringList uiLanguages;
uiLanguages = QLocale::system().uiLanguages();
2、从设置中获取想要显示的语言,尝试覆盖默认的
QString overrideLanguage = settings->value(QLatin1String("General/OverrideLanguage")).toString();
if (!overrideLanguage.isEmpty())
//将想要设置的语言插入字符链表的最开始,以便优先设置
uiLanguages.prepend(overrideLanguage);
3、获取保存翻译的文件路径:
如QtCreator程序中翻译:~/Qt5.6.3/Tools/QtCreator/share/qtcreator/translations
const QString &creatorTrPath = QCoreApplication::applicationDirPath() + QLatin1String(SHARE_PATH) + QLatin1String("/translations");
4、循环加载
foreach (QString locale, uiLanguages) {
//该步骤的功能:如果locale不合法,尝试返回最近的或默认的
locale = QLocale(locale).name();