Qt: use code.contains('_') instead of territory.isEmpty()

QLocale("en") resolves territory to UnitedStates not AnyTerritory,
so territory.isEmpty() is never true. Check the locale code string
itself for an underscore to distinguish pt_BR from en/ja.
This commit is contained in:
arshkumarsingh 2026-05-09 14:43:44 +00:00
parent b6761dfbc0
commit ac15bbf514

View File

@ -2299,7 +2299,7 @@ void main_window::UpdateLanguageActions(const QStringList& language_codes, const
const QLocale locale = QLocale(code);
const QString locale_name = QLocale::languageToString(locale.language());
const QString territory = QLocale::territoryToString(locale.territory());
const QString display_name = territory.isEmpty() ? locale_name : QString("%1 (%2)").arg(locale_name, territory);
const QString display_name = code.contains('_') ? QString("%1 (%2)").arg(locale_name, territory) : locale_name;
// create new action
QAction* act = new QAction(display_name, this);