More language support refactoring.

This commit is contained in:
WrinklyNinja
2014-02-04 19:58:30 +00:00
parent af961477ad
commit f2410b0d04
4 changed files with 40 additions and 45 deletions
+20 -35
View File
@@ -232,9 +232,27 @@ namespace boss {
return "file:///" + file.string(); //Seems that we don't need to worry about encoding, tested with Unicode paths.
}
Language::Language(const unsigned int code) : _code(code) {
Language::Language(const unsigned int code) {
Construct(_code);
}
Language::Language(const std::string& nameOrISOCode) {
if (nameOrISOCode == "English" || nameOrISOCode == "eng")
Construct(g_lang_english);
else if (nameOrISOCode == "Español" || nameOrISOCode == "spa")
Construct(g_lang_spanish);
else if (nameOrISOCode == "Русский" || nameOrISOCode == "rus")
Construct(g_lang_russian);
else if (nameOrISOCode == "Français" || nameOrISOCode == "fra")
Construct(g_lang_french);
else
Construct(g_lang_any);
}
void Language::Construct(const unsigned int code) {
_code = code;
if (_code == g_lang_any) {
_name = "None Specified";
_name = boost::locale::translate("None Specified");
_isoCode = "";
_locale = "en.UTF-8";
}
@@ -260,39 +278,6 @@ namespace boss {
}
}
Language::Language(const std::string& nameOrISOCode) {
if (nameOrISOCode == "English" || nameOrISOCode == "eng") {
_name = "English";
_isoCode = "eng";
_code = g_lang_english;
_locale = "en.UTF-8";
}
else if (nameOrISOCode == "Español" || nameOrISOCode == "spa") {
_name = "Español";
_isoCode = "spa";
_code = g_lang_spanish;
_locale = "es.UTF-8";
}
else if (nameOrISOCode == "Русский" || nameOrISOCode == "rus") {
_name = "Русский";
_isoCode = "rus";
_code = g_lang_russian;
_locale = "ru.UTF-8";
}
else if (nameOrISOCode == "Français" || nameOrISOCode == "fra") {
_name = "Français";
_isoCode = "fra";
_code = g_lang_french;
_locale = "fr.UTF-8";
}
else {
_name = boost::locale::translate("None Specified");
_isoCode = "";
_code = g_lang_any;
_locale = "en.UTF-8";
}
}
unsigned int Language::Code() const {
return _code;
}
+12
View File
@@ -75,11 +75,23 @@ namespace boss {
std::string Name() const;
std::string ISOCode() const;
std::string Locale() const;
static std::vector<std::string> Names() {
std::vector<std::string> vec;
vec.push_back(Language(g_lang_any).Name());
vec.push_back(Language(g_lang_english).Name());
vec.push_back(Language(g_lang_spanish).Name());
vec.push_back(Language(g_lang_russian).Name());
vec.push_back(Language(g_lang_french).Name());
return vec;
}
private:
unsigned int _code;
std::string _isoCode;
std::string _name;
std::string _locale;
void Construct(const unsigned int code);
};
//Version class for more robust version comparisons.
+4 -5
View File
@@ -1034,11 +1034,10 @@ wxString FileEditDialog::GetCondition() const {
MessageEditDialog::MessageEditDialog(wxWindow *parent, const wxString& title) : wxDialog(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) {
wxArrayString languages;
languages.Add(FromUTF8(boss::Language(boss::g_lang_any).Name()));
languages.Add(FromUTF8(boss::Language(boss::g_lang_english).Name()));
languages.Add(FromUTF8(boss::Language(boss::g_lang_spanish).Name()));
languages.Add(FromUTF8(boss::Language(boss::g_lang_russian).Name()));
languages.Add(FromUTF8(boss::Language(boss::g_lang_french).Name()));
vector<string> langs = boss::Language::Names();
for (size_t i = 0; i < langs.size(); i++) {
languages.Add(FromUTF8(langs[i]));
}
//Initialise controls.
_type = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 3, Type);
+4 -5
View File
@@ -51,11 +51,10 @@ SettingsFrame::SettingsFrame(wxWindow *parent, const wxString& title, YAML::Node
}
wxArrayString languages;
languages.Add(FromUTF8(boss::Language(boss::g_lang_any).Name()));
languages.Add(FromUTF8(boss::Language(boss::g_lang_english).Name()));
languages.Add(FromUTF8(boss::Language(boss::g_lang_spanish).Name()));
languages.Add(FromUTF8(boss::Language(boss::g_lang_russian).Name()));
languages.Add(FromUTF8(boss::Language(boss::g_lang_french).Name()));
vector<string> langs = boss::Language::Names();
for (size_t i = 0; i < langs.size(); i++) {
languages.Add(FromUTF8(langs[i]));
}
//Initialise controls.
GameChoice = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, Games);