Minor refactor of Language constructors

This commit is contained in:
Oliver Hamlet
2016-10-13 17:51:08 +01:00
parent 5e96a68743
commit ba077600f9
2 changed files with 14 additions and 18 deletions
+13 -17
View File
@@ -39,23 +39,7 @@ const std::vector<LanguageCode> Language::codes({
LanguageCode::korean
});
Language::Language(LanguageCode code) {
Construct(code);
}
Language::Language(const std::string& locale) {
for (LanguageCode code : codes) {
if (locale == Language(code).GetLocale()) {
Construct(code);
return;
}
}
Construct(LanguageCode::english);
}
void Language::Construct(const LanguageCode code) {
code_ = code;
Language::Language(LanguageCode code) : code_(code) {
if (code_ == LanguageCode::spanish) {
name_ = "Español";
locale_ = "es";
@@ -93,6 +77,18 @@ void Language::Construct(const LanguageCode code) {
}
}
Language::Language(const std::string& locale) : Language(GetCode(locale)) {}
LanguageCode Language::GetCode(const std::string& locale) {
for (LanguageCode code : codes) {
if (locale == Language(code).GetLocale()) {
return code;
}
}
return LanguageCode::english;
}
LanguageCode Language::GetCode() const {
return code_;
}
+1 -1
View File
@@ -44,7 +44,7 @@ public:
std::string GetName() const;
std::string GetLocale() const;
private:
void Construct(const LanguageCode code);
static LanguageCode GetCode(const std::string& locale);
LanguageCode code_;
std::string name_;