File indexing completed on 2024-04-28 03:53:48

0001 /*
0002     SPDX-FileCopyrightText: 2014 Alex Richardson <arichardson.kde@gmail.com>
0003     SPDX-FileCopyrightText: 2021 Alexander Lohnau <alexander.lohnau@gmx.de>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #include "kjsonutils.h"
0009 
0010 #include <QJsonObject>
0011 
0012 QJsonValue KJsonUtils::readTranslatedValue(const QJsonObject &jo, const QString &key, const QJsonValue &defaultValue)
0013 {
0014     QString languageWithCountry = QLocale().name();
0015     auto it = jo.constFind(key + QLatin1Char('[') + languageWithCountry + QLatin1Char(']'));
0016     if (it != jo.constEnd()) {
0017         return it.value();
0018     }
0019     const QStringView language = QStringView(languageWithCountry).mid(0, languageWithCountry.indexOf(QLatin1Char('_')));
0020     it = jo.constFind(key + QLatin1Char('[') + language + QLatin1Char(']'));
0021     if (it != jo.constEnd()) {
0022         return it.value();
0023     }
0024     // no translated value found -> check key
0025     it = jo.constFind(key);
0026     if (it != jo.constEnd()) {
0027         return jo.value(key);
0028     }
0029     return defaultValue;
0030 }
0031 
0032 QString KJsonUtils::readTranslatedString(const QJsonObject &jo, const QString &key, const QString &defaultValue)
0033 {
0034     return KJsonUtils::readTranslatedValue(jo, key, defaultValue).toString(defaultValue);
0035 }