Skip to content

Commit 5723329

Browse files
committed
fix: translation won't load if locale code isn't 100% matched
修复地区代码不完全匹配时,翻译不会被加载的问题. Log:
1 parent 8c90507 commit 5723329

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

shell/appletloader.cpp

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -248,17 +248,16 @@ void DAppletLoaderPrivate::loadTranslation(const DPluginMetaData &pluginData)
248248
const QString baseDir = pluginData.pluginDir();
249249
const QString pluginId = pluginData.pluginId();
250250

251-
QString pluginTransFilePath = QString(baseDir + "/translations/" + pluginId + "_%1.qm").arg(QLocale::system().name());
252-
if (QFile::exists(pluginTransFilePath)) {
253-
auto translator = new QTranslator(qApp);
254-
if (translator->load(pluginTransFilePath)) {
255-
m_pluginTranslators[pluginId] = translator;
256-
qApp->installTranslator(translator);
257-
qInfo(dsLoaderLog) << "Loaded translation:" << pluginTransFilePath;
258-
} else {
259-
qCWarning(dsLoaderLog) << "Failed to load translation:" << pluginTransFilePath;
260-
translator->deleteLater();
261-
}
251+
auto translator = new QTranslator(qApp);
252+
const QString pluginTranslationDir(baseDir + "/translations/");
253+
if (translator->load(QLocale::system(), pluginId, QLatin1String("_"), pluginTranslationDir)) {
254+
m_pluginTranslators[pluginId] = translator;
255+
qApp->installTranslator(translator);
256+
qInfo(dsLoaderLog) << "Loaded translation:" << translator->filePath();
257+
} else {
258+
qCWarning(dsLoaderLog) << "Failed to load translation:" << pluginTranslationDir << "plugin id:" << pluginId
259+
<< "locale:" << QLocale::system().uiLanguages();
260+
translator->deleteLater();
262261
}
263262

264263
const auto children = DPluginLoader::instance()->childrenPlugin(pluginId);

0 commit comments

Comments
 (0)