Sorted out language handling.

"Any" is now only valid when choosing message content.
This commit is contained in:
WrinklyNinja
2014-06-09 11:51:27 +01:00
parent 3beb9db3f6
commit b461cafa0d
7 changed files with 14 additions and 19 deletions
+1 -1
View File
@@ -473,7 +473,7 @@ namespace YAML {
else
out << Key << "type" << Value << "error";
if (rhs.Content().size() == 1 && rhs.Content().front().Language() == loot::Language::any)
if (rhs.Content().size() == 1)
out << Key << "content" << Value << rhs.Content().front().Str();
else
out << Key << "content" << Value << rhs.Content();
+6 -10
View File
@@ -252,20 +252,12 @@ namespace loot {
else if (nameOrCode == Language(Language::finnish).Name() || nameOrCode == Language(Language::finnish).Locale())
Construct(Language::finnish);
else
Construct(Language::any);
Construct(Language::english);
}
void Language::Construct(const unsigned int code) {
_code = code;
if (_code == Language::any) {
_name = boost::locale::translate("None Specified");
_locale = "en";
}
else if (_code == Language::english) {
_name = "English";
_locale = "en";
}
else if (_code == Language::spanish) {
if (_code == Language::spanish) {
_name = "Español";
_locale = "es";
}
@@ -293,6 +285,10 @@ namespace loot {
_name = "suomi";
_locale = "fi";
}
else {
_name = "English";
_locale = "en";
}
}
unsigned int Language::Code() const {
+1 -2
View File
@@ -73,7 +73,7 @@ namespace loot {
std::string Name() const;
std::string Locale() const;
static const unsigned int any = 0;
static const unsigned int any = 0; // This shouldn't be used as a selectable language, just for when picking any string in a message.
static const unsigned int english = 1;
static const unsigned int spanish = 2;
static const unsigned int russian = 3;
@@ -85,7 +85,6 @@ namespace loot {
static std::vector<std::string> Names() {
std::vector<std::string> vec;
vec.push_back(Language(Language::any).Name());
vec.push_back(Language(Language::english).Name());
vec.push_back(Language(Language::spanish).Name());
vec.push_back(Language(Language::russian).Name());
+2 -2
View File
@@ -154,7 +154,7 @@ namespace loot {
return eval;
}
MessageContent::MessageContent() : _language(Language::any) {}
MessageContent::MessageContent() : _language(Language::english) {}
MessageContent::MessageContent(const std::string& str, const unsigned int language) : _str(str), _language(language) {}
@@ -178,7 +178,7 @@ namespace loot {
Message::Message(const unsigned int type, const std::string& content,
const std::string& condition) : _type(type), ConditionStruct(condition) {
_content.push_back(MessageContent(content, Language::any));
_content.push_back(MessageContent(content, Language::english));
}
Message::Message(const unsigned int type, const std::vector<MessageContent>& content,
+1 -1
View File
@@ -212,7 +212,7 @@ namespace YAML {
if (node["content"].IsSequence())
content = node["content"].as< std::vector<loot::MessageContent> >();
else {
content.push_back(loot::MessageContent(node["content"].as<std::string>(), loot::Language::any));
content.push_back(loot::MessageContent(node["content"].as<std::string>(), loot::Language::english));
}
//Check now that at least one item in content is English if there are multiple items.
+1 -1
View File
@@ -266,7 +266,7 @@ bool LOOT::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 = loot::Language(loot::Language::any).Locale() + ".UTF-8";
string localeId = loot::Language(loot::Language::english).Locale() + ".UTF-8";
wxLanguage wxLang = wxLANGUAGE_ENGLISH;
if (_settings["Language"]) {
loot::Language lang(_settings["Language"].as<string>());
+2 -2
View File
@@ -150,7 +150,7 @@ void SettingsFrame::SetDefaultValues() {
BOOST_LOG_TRIVIAL(debug) << "Setting default values for LOOT's settings.";
if (_settings["Language"]) {
LanguageChoice->SetSelection(loot::Language(_settings["Language"].as<string>()).Code());
LanguageChoice->SetSelection(loot::Language(_settings["Language"].as<string>()).Code() - 1);
}
if (_settings["Game"]) {
@@ -201,7 +201,7 @@ void SettingsFrame::OnQuit(wxCommandEvent& event) {
else
_settings["Game"] = _games[GameChoice->GetSelection() - 1].FolderName();
_settings["Language"] = loot::Language(LanguageChoice->GetSelection()).Locale();
_settings["Language"] = loot::Language(LanguageChoice->GetSelection() + 1).Locale();
_settings["Debug Verbosity"] = DebugVerbosityChoice->GetSelection();