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:
WrinklyNinja
2014-02-23 16:56:57 +00:00
parent c07c2443a1
commit 402d9e3e14
6 changed files with 18 additions and 31 deletions
+1 -1
View File
@@ -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
View File
@@ -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;
}
-2
View File
@@ -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;
+1 -1
View File
@@ -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
View File
@@ -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)
+1 -1
View File
@@ -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();