Gui: Default Translator::SetLocale to OS locale + simplify code

This commit is contained in:
0penBrain
2022-03-28 19:15:04 +02:00
committed by wwmayer
parent 32f6443bd4
commit 7a74ae01d3
3 changed files with 13 additions and 17 deletions

View File

@@ -252,26 +252,23 @@ std::string Translator::locale(const std::string& lang) const
return loc;
}
bool Translator::setLocale(const std::string& language) const
void Translator::setLocale(const std::string& language) const
{
auto loc = QLocale::c(); //Defaulting to POSIX locale
auto bcp47 = locale(language);
if (!bcp47.empty())
loc = QLocale(QString::fromStdString(bcp47));
auto loc = QLocale::system(); //Defaulting to OS locale
if (language == "C" || language == "c") {
loc = QLocale::c();
}
else {
auto bcp47 = locale(language);
if (!bcp47.empty())
loc = QLocale(QString::fromStdString(bcp47));
}
QLocale::setDefault(loc);
updateLocaleChange();
#ifdef FC_DEBUG
Base::Console().Log("Locale changed to %s => %s\n", qPrintable(loc.bcp47Name()), qPrintable(loc.name()));
#endif
return (loc.language() != loc.C);
}
void Translator::setSystemLocale() const
{
QLocale::setDefault(QLocale::system());
updateLocaleChange();
}
void Translator::updateLocaleChange() const