From aafdac6da465e6498e39e1b55566fc8fe2402843 Mon Sep 17 00:00:00 2001 From: AlexeyZavar Date: Wed, 9 Jul 2025 01:20:57 +0300 Subject: [PATCH] fix: localization variables loading --- Telegram/SourceFiles/ayu/ayu_lang.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/ayu/ayu_lang.cpp b/Telegram/SourceFiles/ayu/ayu_lang.cpp index cab394edeb..fcf81276d4 100644 --- a/Telegram/SourceFiles/ayu/ayu_lang.cpp +++ b/Telegram/SourceFiles/ayu/ayu_lang.cpp @@ -107,7 +107,7 @@ void AyuLanguage::applyLanguageJson(QJsonDocument doc) { const auto json = doc.object(); for (const QString &brokenKey : json.keys()) { auto key = qsl("ayu_") + brokenKey; - const auto val = json.value(brokenKey).toString().replace(qsl("&"), qsl("&")).toUtf8(); + auto val = json.value(brokenKey).toString().replace(qsl("&"), qsl("&")); if (key.endsWith("_zero") || key.endsWith("_two") || key.endsWith("_few") || key.endsWith("_many")) { continue; @@ -119,8 +119,16 @@ void AyuLanguage::applyLanguageJson(QJsonDocument doc) { key = key.replace("_other", "#other"); } + if (val.contains(qsl("%1$d")) && !val.contains(qsl("%2$d"))) { + val = val.replace(qsl("%1$d"), qsl("{count}")); + } else if (val.contains(qsl("%1$d")) && val.contains(qsl("%2$d"))) { + val = val.replace(qsl("%1$d"), qsl("{count1}")).replace(qsl("%2$d"), qsl("{count2}")); + } else if (val.contains(qsl("%1$s"))) { + val = val.replace(qsl("%1$s"), qsl("{item}")); + } + Lang::GetInstance().resetValue(key.toUtf8()); - Lang::GetInstance().applyValue(key.toUtf8(), val); + Lang::GetInstance().applyValue(key.toUtf8(), val.toUtf8()); } Lang::GetInstance().updatePluralRules(); }