Fix blank lines in language dropdown menu (#6512)
Discards invalid languages from language list and falls back to English if there is no native language name.
This commit is contained in:
@@ -264,11 +264,22 @@ SetupDialog::SetupDialog(ConfigTabs tab_to_open) :
|
||||
QStringList fileNames = dir.entryList(QStringList("*.qm"));
|
||||
for(int i = 0; i < fileNames.size(); ++i)
|
||||
{
|
||||
// Get locale extracted by filename.
|
||||
// Extract ISO-639 language code from filename
|
||||
fileNames[i].truncate(fileNames[i].lastIndexOf('.'));
|
||||
// Skip invalid language codes
|
||||
QLocale locale(fileNames[i]);
|
||||
if (locale.language() == QLocale::C)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
// Display the native language name or fallback to the English name
|
||||
QString langName = locale.nativeLanguageName();
|
||||
if (langName.isEmpty())
|
||||
{
|
||||
langName = QLocale::languageToString(locale.language());
|
||||
}
|
||||
m_languages.append(fileNames[i]);
|
||||
QString lang = QLocale(m_languages.last()).nativeLanguageName();
|
||||
changeLang->addItem(lang);
|
||||
changeLang->addItem(langName);
|
||||
}
|
||||
|
||||
// If language unset, fallback to system language when available.
|
||||
@@ -1352,4 +1363,4 @@ void SetupDialog::showRestartWarning()
|
||||
}
|
||||
|
||||
|
||||
} // namespace lmms::gui
|
||||
} // namespace lmms::gui
|
||||
|
||||
Reference in New Issue
Block a user