Gui: Default Translator::SetLocale to OS locale + simplify code
This commit is contained in:
@@ -144,7 +144,7 @@ void DlgGeneralImp::setNumberLocale(bool force/* = false*/)
|
||||
return;
|
||||
|
||||
if (localeFormat == 0) {
|
||||
Translator::instance()->setSystemLocale();
|
||||
Translator::instance()->setLocale(); // Defaults to system locale
|
||||
}
|
||||
else if (localeFormat == 1) {
|
||||
QByteArray current = ui->Languages->itemData(ui->Languages->currentIndex()).toByteArray();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -66,9 +66,8 @@ public:
|
||||
std::string activeLanguage() const;
|
||||
/** Returns the locale (e.g. "de") to the given language name. */
|
||||
std::string locale(const std::string&) const;
|
||||
/** Sets default Qt locale based on given language name. Returns true if matching QLocale found**/
|
||||
bool setLocale(const std::string&) const;
|
||||
void setSystemLocale() const;
|
||||
/** Sets default Qt locale based on given language name **/
|
||||
void setLocale(const std::string& = "") const;
|
||||
/** Returns a list of supported languages. */
|
||||
TStringList supportedLanguages() const;
|
||||
/** Returns a map of supported languages/locales. */
|
||||
|
||||
Reference in New Issue
Block a user