mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
Sorted out language handling.
"Any" is now only valid when choosing message content.
This commit is contained in:
@@ -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
@@ -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 {
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
@@ -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>());
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user