diff --git a/src/backend/generators.h b/src/backend/generators.h index a4421443..4e8313d8 100644 --- a/src/backend/generators.h +++ b/src/backend/generators.h @@ -659,7 +659,7 @@ namespace YAML { inline Emitter& operator << (Emitter& out, const boss::MessageContent& rhs) { out << BeginMap; - out << Key << "lang" << Value << boss::Language(rhs.Language()).ISOCode(); + out << Key << "lang" << Value << boss::Language(rhs.Language()).Locale(); out << Key << "str" << Value << rhs.Str(); diff --git a/src/backend/helpers.cpp b/src/backend/helpers.cpp index e200d51d..2b72dce4 100644 --- a/src/backend/helpers.cpp +++ b/src/backend/helpers.cpp @@ -237,17 +237,17 @@ namespace boss { } Language::Language(const std::string& nameOrISOCode) { - if (nameOrISOCode == "English" || nameOrISOCode == "eng") + if (nameOrISOCode == Language(g_lang_english).Name() || nameOrISOCode == Language(g_lang_english).Locale()) Construct(g_lang_english); - else if (nameOrISOCode == "Español" || nameOrISOCode == "spa") + if (nameOrISOCode == Language(g_lang_english).Name() || nameOrISOCode == Language(g_lang_english).Locale()) Construct(g_lang_spanish); - else if (nameOrISOCode == "Русский" || nameOrISOCode == "rus") + if (nameOrISOCode == Language(g_lang_spanish).Name() || nameOrISOCode == Language(g_lang_spanish).Locale()) Construct(g_lang_russian); - else if (nameOrISOCode == "Français" || nameOrISOCode == "fra") + if (nameOrISOCode == Language(g_lang_russian).Name() || nameOrISOCode == Language(g_lang_russian).Locale()) Construct(g_lang_french); - else if (nameOrISOCode == "简体中文" || nameOrISOCode == "zho") + if (nameOrISOCode == Language(g_lang_french).Name() || nameOrISOCode == Language(g_lang_french).Locale()) Construct(g_lang_chinese); - else if (nameOrISOCode == "Polski" || nameOrISOCode == "pol") + if (nameOrISOCode == Language(g_lang_chinese).Name() || nameOrISOCode == Language(g_lang_chinese).Locale()) Construct(g_lang_polish); else Construct(g_lang_any); @@ -257,38 +257,31 @@ namespace boss { _code = code; if (_code == g_lang_any) { _name = boost::locale::translate("None Specified"); - _isoCode = ""; - _locale = "en.UTF-8"; + _locale = "en"; } else if (_code == g_lang_english) { _name = "English"; - _isoCode = "eng"; - _locale = "en.UTF-8"; + _locale = "en"; } else if (_code == g_lang_spanish) { _name = "Español"; - _isoCode = "spa"; - _locale = "es.UTF-8"; + _locale = "es"; } else if (_code == g_lang_russian) { _name = "Русский"; - _isoCode = "rus"; - _locale = "ru.UTF-8"; + _locale = "ru"; } else if (_code == g_lang_french) { _name = "Français"; - _isoCode = "fra"; - _locale = "fr.UTF-8"; + _locale = "fr"; } else if (_code == g_lang_chinese) { _name = "简体中文"; - _isoCode = "zho"; - _locale = "zh.UTF-8"; + _locale = "zh_CN"; } else if (_code == g_lang_polish) { _name = "Polski"; - _isoCode = "pol"; - _locale = "pl.UTF-8"; + _locale = "pl"; } } @@ -300,10 +293,6 @@ namespace boss { return _name; } - std::string Language::ISOCode() const { - return _isoCode; - } - std::string Language::Locale() const { return _locale; } diff --git a/src/backend/helpers.h b/src/backend/helpers.h index e34d7aef..c8cdd453 100644 --- a/src/backend/helpers.h +++ b/src/backend/helpers.h @@ -73,7 +73,6 @@ namespace boss { unsigned int Code() const; std::string Name() const; - std::string ISOCode() const; std::string Locale() const; static std::vector Names() { @@ -89,7 +88,6 @@ namespace boss { } private: unsigned int _code; - std::string _isoCode; std::string _name; std::string _locale; diff --git a/src/backend/parsers.h b/src/backend/parsers.h index f4f91976..4c997808 100644 --- a/src/backend/parsers.h +++ b/src/backend/parsers.h @@ -154,7 +154,7 @@ namespace YAML { static Node encode(const boss::MessageContent& rhs) { Node node; node["str"] = rhs.Str(); - node["lang"] = boss::Language(rhs.Language()).ISOCode(); + node["lang"] = boss::Language(rhs.Language()).Locale(); return node; } diff --git a/src/gui/main.cpp b/src/gui/main.cpp index 5ee1abcf..468b25bb 100644 --- a/src/gui/main.cpp +++ b/src/gui/main.cpp @@ -234,12 +234,12 @@ bool BossGUI::OnInit() { //Set the locale to get encoding and language conversions working correctly. BOOST_LOG_TRIVIAL(debug) << "Initialising language settings."; //Defaults in case language string is empty or setting is missing. - string localeId = boss::Language(boss::g_lang_any).Locale(); + string localeId = boss::Language(boss::g_lang_any).Locale() + ".UTF-8"; wxLanguage wxLang = wxLANGUAGE_ENGLISH; if (_settings["Language"]) { boss::Language lang(_settings["Language"].as()); BOOST_LOG_TRIVIAL(debug) << "Selected language: " << lang.Name(); - localeId = lang.Locale(); + localeId = lang.Locale() + ".UTF-8"; if (lang.Code() == boss::g_lang_english) wxLang = wxLANGUAGE_ENGLISH; else if (lang.Code() == boss::g_lang_spanish) diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index f4b98dbb..8d41831c 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -209,7 +209,7 @@ void SettingsFrame::OnQuit(wxCommandEvent& event) { else _settings["Game"] = _games[GameChoice->GetSelection() - 1].FolderName(); - _settings["Language"] = boss::Language(LanguageChoice->GetSelection()).ISOCode(); + _settings["Language"] = boss::Language(LanguageChoice->GetSelection()).Locale(); _settings["Debug Verbosity"] = DebugVerbosityChoice->GetSelection();