Browse Source

Merge pull request #6084 from Chocobo1/set_locale

Set default locale
adaptive-webui-19844
sledgehammer999 8 years ago committed by GitHub
parent
commit
1376d8fa7b
  1. 35
      src/app/application.cpp
  2. 5
      src/base/preferences.cpp

35
src/app/application.cpp

@ -511,36 +511,27 @@ void Application::initializeTranslation()
{ {
Preferences* const pref = Preferences::instance(); Preferences* const pref = Preferences::instance();
// Load translation // Load translation
QString locale = pref->getLocale(); QString localeStr = pref->getLocale();
QLocale::setDefault(QLocale(localeStr));
if (locale.isEmpty()) { if (
locale = QLocale::system().name();
pref->setLocale(locale);
}
if (m_qtTranslator.load(
#ifdef QBT_USES_QT5 #ifdef QBT_USES_QT5
QString::fromUtf8("qtbase_") + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath)) || m_qtTranslator.load(QString::fromUtf8("qtbase_") + localeStr, QLibraryInfo::location(QLibraryInfo::TranslationsPath)) ||
m_qtTranslator.load(
#endif #endif
QString::fromUtf8("qt_") + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) { m_qtTranslator.load(QString::fromUtf8("qt_") + localeStr, QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
qDebug("Qt %s locale recognized, using translation.", qPrintable(locale)); qDebug("Qt %s locale recognized, using translation.", qPrintable(localeStr));
} else
else { qDebug("Qt %s locale unrecognized, using default (en).", qPrintable(localeStr));
qDebug("Qt %s locale unrecognized, using default (en).", qPrintable(locale));
}
installTranslator(&m_qtTranslator); installTranslator(&m_qtTranslator);
if (m_translator.load(QString::fromUtf8(":/lang/qbittorrent_") + locale)) { if (m_translator.load(QString::fromUtf8(":/lang/qbittorrent_") + localeStr))
qDebug("%s locale recognized, using translation.", qPrintable(locale)); qDebug("%s locale recognized, using translation.", qPrintable(localeStr));
} else
else { qDebug("%s locale unrecognized, using default (en).", qPrintable(localeStr));
qDebug("%s locale unrecognized, using default (en).", qPrintable(locale));
}
installTranslator(&m_translator); installTranslator(&m_translator);
#ifndef DISABLE_GUI #ifndef DISABLE_GUI
if (locale.startsWith("ar") || locale.startsWith("he")) { if (localeStr.startsWith("ar") || localeStr.startsWith("he")) {
qDebug("Right to Left mode"); qDebug("Right to Left mode");
setLayoutDirection(Qt::RightToLeft); setLayoutDirection(Qt::RightToLeft);
} }

5
src/base/preferences.cpp

@ -31,8 +31,9 @@
*/ */
#include <QCryptographicHash> #include <QCryptographicHash>
#include <QPair>
#include <QDir> #include <QDir>
#include <QLocale>
#include <QPair>
#include <QSettings> #include <QSettings>
#ifndef DISABLE_GUI #ifndef DISABLE_GUI
@ -92,7 +93,7 @@ void Preferences::setValue(const QString &key, const QVariant &value)
// General options // General options
QString Preferences::getLocale() const QString Preferences::getLocale() const
{ {
return value("Preferences/General/Locale").toString(); return value("Preferences/General/Locale", QLocale::system().name()).toString();
} }
void Preferences::setLocale(const QString &locale) void Preferences::setLocale(const QString &locale)

Loading…
Cancel
Save