From 6259190ad9751ee89fecb5cbe5b061af349a994c Mon Sep 17 00:00:00 2001 From: WerWolv Date: Sat, 18 Jan 2025 14:40:10 +0100 Subject: [PATCH] impr: Make localization fall back to english if it doesn't exist --- lib/libimhex/include/hex/api/localization_manager.hpp | 2 +- lib/libimhex/source/api/localization_manager.cpp | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/libimhex/include/hex/api/localization_manager.hpp b/lib/libimhex/include/hex/api/localization_manager.hpp index 448c183f8..00c1d1d98 100644 --- a/lib/libimhex/include/hex/api/localization_manager.hpp +++ b/lib/libimhex/include/hex/api/localization_manager.hpp @@ -31,7 +31,7 @@ namespace hex { } - void loadLanguage(const std::string &language); + void loadLanguage(std::string language); std::string getLocalizedString(const std::string &unlocalizedString, const std::string &language = ""); [[nodiscard]] const std::map &getSupportedLanguages(); diff --git a/lib/libimhex/source/api/localization_manager.cpp b/lib/libimhex/source/api/localization_manager.cpp index d74ddfc14..31be5b8c5 100644 --- a/lib/libimhex/source/api/localization_manager.cpp +++ b/lib/libimhex/source/api/localization_manager.cpp @@ -56,18 +56,19 @@ namespace hex { } } - void loadLanguage(const std::string &language) { + void loadLanguage(std::string language) { auto &definitions = ContentRegistry::Language::impl::getLanguageDefinitions(); + const auto& fallbackLanguage = getFallbackLanguage(); if (!definitions.contains(language)) - return; + language = fallbackLanguage; s_currStrings->clear(); loadLanguageDefinitions(definitions.at(language)); - const auto& fallbackLanguage = getFallbackLanguage(); - loadLanguageDefinitions(definitions.at(fallbackLanguage)); + if (language != fallbackLanguage) + loadLanguageDefinitions(definitions.at(fallbackLanguage)); s_selectedLanguage = language; }