Skip to content

Commit 9f8ae1d

Browse files
committed
fix: translation not loaded if language code not fully matched
修正当系统语言代码与翻译资源的语言代码不完全匹配时(例如资源文件的语 言代码中不包括地区代码部分),翻译资源不会被加载的问题. Log:
1 parent 0ae40fd commit 9f8ae1d

5 files changed

Lines changed: 19 additions & 10 deletions

File tree

dock-hotspot-plugin/hotspotplugin.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ HotspotPlugin::HotspotPlugin(QObject *parent)
2222
: QObject(parent)
2323
{
2424
QTranslator *trs = new QTranslator(this);
25-
trs->load(QString("/usr/share/dock-hotspot-plugin/translations/dock-hotspot-plugin_%1.qm").arg(QLocale::system().name()));
26-
QCoreApplication::installTranslator(trs);
25+
if (trs->load(QLocale(), "dock-hotspot-plugin", "_", "/usr/share/dock-hotspot-plugin/translations")) {
26+
QCoreApplication::installTranslator(trs);
27+
}
2728
}
2829

2930
void HotspotPlugin::init(PluginProxyInterface *proxyInter) {

dock-network-plugin/networkplugin.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ NetworkPlugin::NetworkPlugin(QObject *parent)
4242
, m_netLimited(false)
4343
{
4444
QTranslator *translator = new QTranslator(this);
45-
if (translator->load(QString("/usr/share/dock-network-plugin/translations/dock-network-plugin_%1").arg(QLocale().name()))) {
45+
if (translator->load(QLocale(), "dock-network-plugin", "_", "/usr/share/dock-network-plugin/translations")) {
4646
QCoreApplication::installTranslator(translator);
4747
}
4848
}

dss-network-plugin/networkmodule.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ void NetworkModule::installTranslator(const QString &locale)
171171
}
172172
localTmp = locale;
173173
QApplication::removeTranslator(&translator);
174-
translator.load(QString("/usr/share/dss-network-plugin/translations/dss-network-plugin_%1").arg(locale));
174+
translator.load(QLocale(locale), "dss-network-plugin", "_", "/usr/share/dss-network-plugin/translations");
175175
QApplication::installTranslator(&translator);
176176
m_manager->updateLanguage(localTmp);
177177
}

network-service-plugin/system/networkinitialization.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -377,10 +377,12 @@ bool NetworkInitialization::installUserTranslator(const QString &json)
377377
localTmp = locale;
378378
static QTranslator translator;
379379
QCoreApplication::removeTranslator(&translator);
380-
const QString qmFile = QString("%1/network-service-plugin_%2.qm").arg(QM_FILES_DIR).arg(locale);
381-
translator.load(qmFile);
382-
QCoreApplication::installTranslator(&translator);
383-
qCDebug(DSM) << "install translation file" << qmFile;
380+
if (translator.load(QLocale(locale), "network-service-plugin", "_", QM_FILES_DIR)) {
381+
QCoreApplication::installTranslator(&translator);
382+
qCInfo(DSM) << "Loaded translation file for network-service-plugin:" << translator.filePath();
383+
} else {
384+
qCWarning(DSM) << "Failed to load translation file for network-service-plugin with locale:" << locale;
385+
}
384386
}
385387

386388
return true;

src/networkcontroller.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,14 @@ void NetworkController::installTranslator(const QString &locale)
148148
} else {
149149
m_translator = new QTranslator;
150150
}
151-
m_translator->load(QString("/usr/share/dde-network-core/translations/dde-network-core_%1").arg(localeName));
152-
QCoreApplication::installTranslator(m_translator);
151+
if (m_translator->load(QLocale(localeName), "dde-network-core", "_", "/usr/share/dde-network-core/translations")) {
152+
QCoreApplication::installTranslator(m_translator);
153+
qInfo() << "Loaded translation file for dde-network-core:" << m_translator->filePath();
154+
} else {
155+
qWarning() << "Failed to load translation file for dde-network-core";
156+
m_translator->deleteLater();
157+
m_translator = nullptr;
158+
}
153159
}
154160

155161
void NetworkController::updateSync(const bool sync)

0 commit comments

Comments
 (0)