mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
Tweaked translation handling.
Now POSIX codes are used throughout, it makes more sense and I should have done this sooner. The masterlists will need updating to use the new codes.
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
+13
-24
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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<std::string> Names() {
|
||||
@@ -89,7 +88,6 @@ namespace boss {
|
||||
}
|
||||
private:
|
||||
unsigned int _code;
|
||||
std::string _isoCode;
|
||||
std::string _name;
|
||||
std::string _locale;
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
+2
-2
@@ -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<string>());
|
||||
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)
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user