Save the Canonical Language Name instead of the Enumerator to the Slic3r.ini

This commit is contained in:
YuSanka 2018-05-03 09:21:01 +02:00
parent 4131a92cec
commit 20b83c5b53

View File

@ -309,22 +309,18 @@ bool select_language(wxArrayString & names,
bool load_language() bool load_language()
{ {
long language; wxString language = wxEmptyString;
if (!g_AppConfig->has("translation_language")) if (g_AppConfig->has("translation_language"))
language = wxLANGUAGE_UNKNOWN; language = g_AppConfig->get("translation_language");
else {
auto str_language = g_AppConfig->get("translation_language");
language = str_language != "" ? stol(str_language) : wxLANGUAGE_UNKNOWN;
}
if (language == wxLANGUAGE_UNKNOWN) if (language.IsEmpty())
return false; return false;
wxArrayString names; wxArrayString names;
wxArrayLong identifiers; wxArrayLong identifiers;
get_installed_languages(names, identifiers); get_installed_languages(names, identifiers);
for (size_t i = 0; i < identifiers.Count(); i++) for (size_t i = 0; i < identifiers.Count(); i++)
{ {
if (identifiers[i] == language) if (wxLocale::GetLanguageCanonicalName(identifiers[i]) == language)
{ {
g_wxLocale = new wxLocale; g_wxLocale = new wxLocale;
g_wxLocale->Init(identifiers[i]); g_wxLocale->Init(identifiers[i]);
@ -339,13 +335,11 @@ bool load_language()
void save_language() void save_language()
{ {
//! TO DO !! use GetCanonicalName; wxString language = wxEmptyString;
long language = wxLANGUAGE_UNKNOWN; if (g_wxLocale)
if (g_wxLocale) { language = g_wxLocale->GetCanonicalName();
language = g_wxLocale->GetLanguage();
} g_AppConfig->set("translation_language", language.ToStdString());
std::string str_language = std::to_string(language);
g_AppConfig->set("translation_language", str_language);
g_AppConfig->save(); g_AppConfig->save();
} }