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 }