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:
Alex
2022-10-10 03:02:08 +02:00
committed by GitHub
parent a57265cf8d
commit a0e8db37f0

View File

@@ -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