From c16842a193af749368c8b0f0c1ed4eb0423e5ee1 Mon Sep 17 00:00:00 2001 From: ShrBox Date: Thu, 2 Jan 2025 17:00:03 +0800 Subject: [PATCH] fix: fix i18n --- src/legacy/api/InternationalAPI.cpp | 15 ++++----------- src/legacy/engine/EngineOwnData.h | 4 ++-- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/src/legacy/api/InternationalAPI.cpp b/src/legacy/api/InternationalAPI.cpp index 26ff81c..e90f916 100644 --- a/src/legacy/api/InternationalAPI.cpp +++ b/src/legacy/api/InternationalAPI.cpp @@ -102,10 +102,7 @@ void FormatHelper( Local TrFormat(const Arguments& args, size_t offset, std::string key, const std::string& localeName = "") { try { size_t argsLength = args.size() - offset; - auto i18n = getEngineOwnData()->i18n; - if (i18n) { - key = i18n->get(key, localeName); - } + key = getEngineOwnData()->i18n.get(key, localeName); // realFormatStr = FixCurlyBracket(realFormatStr); if (0ULL == argsLength) { // Avoid fmt if only one argument @@ -172,11 +169,7 @@ Local I18nClass::get(const Arguments& args) { if (args.size() == 2) { localeName = args[1].asString().toString(); } - auto i18n = getEngineOwnData()->i18n; - if (!i18n) { - throw Exception("I18n data has not been loaded yet!"); - } - return String::newString(i18n->get(key, localeName)); + return String::newString(getEngineOwnData()->i18n.get(key, localeName)); } CATCH_AND_THROW; } @@ -215,12 +208,12 @@ Local I18nClass::load(const Arguments& args) { if (str.getKind() != ValueKind::kString) { throw Exception("Value in SubLangData must be a string"); } - EngineOwnData().i18n->set(localeName, objKeys[j].toString(), str.asString().toString()); + getEngineOwnData()->i18n.set(localeName, objKeys[j].toString(), str.asString().toString()); } } } - if (auto result = EngineOwnData().i18n->load(path); !result) { + if (auto result = getEngineOwnData()->i18n.load(path); !result) { return Boolean::newBoolean(false); } return Boolean::newBoolean(true); diff --git a/src/legacy/engine/EngineOwnData.h b/src/legacy/engine/EngineOwnData.h index ecb4e5e..4182ae1 100644 --- a/src/legacy/engine/EngineOwnData.h +++ b/src/legacy/engine/EngineOwnData.h @@ -71,8 +71,8 @@ struct EngineOwnData { */ // I18nAPI - std::shared_ptr i18n = std::make_shared(); - std::string defaultLocaleName; + ll::i18n::I18n i18n; + std::string defaultLocaleName; std::shared_ptr plugin;