The regionandlang KCM has a warning specific to American English that states:
"Putting American English above other languages will cause undesired behavior in some applications. If you would like your system to use American English, remove all other languages."
Users of e.g. Fedora are forced to choose an English variant among many, so American English isn't always in the language list. Additionally, this warning also applies to any other variant of English like en_GB or en_AU just as much as en_US. Therefore I propose that this warning should be displayed whenever any English variant is in the list, not just en_US, and state:
"Putting English above other languages will cause undesired behavior in some applications. If you would like your system be entirely in English, remove all other languages."
In Bug 465373 a reasoning was given:
"Why we only have warning for en_US? Because en_US is KDE's default locale, in KDE, en_US == C. That's means any language below en_US won't be displayed."
All of that is true, but it's also true if en_GB is the top language and the user adds another language. Their system won't be entirely in English any more.
Operating System: Fedora Linux 37
KDE Plasma Version: 5.26.5
KDE Frameworks Version: 5.102.0
Qt Version: 5.15.8
Graphics Platform: X11
Ultimately this may prove to be insufficient and we'll need to try again to do https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1087. But for now let's fix this and see if it helps.
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2593
Git commit aaf42575e497a4aa6a856d518fdbafaf77ae7537 by Nate Graham.
Committed on 10/02/2023 at 14:06.
Pushed by ngraham into branch 'master'.
kcms/region/language: Warn for more invalid language combinations
We currently warn the user when they configure American English (en_US)
as their first language with any other languages underneath it--because
it causes a mix of languages to be shown in the UI and confuses the heck
out of people.
But we only check if the top language is en_US! There are other
Englishes too that technically count as full languages--such as en_GB.
If the user makes en_GB their top language and then puts any other
non-English language under it, the same thing happens as the system will
fall back to the second non-English language for any string that isn't
found in the British English translation catalogue, which turns out to
be a lot. What a person using en_GB actually wants is to fall back to
en_US, which is the implicit default and happens when there are no other
languages configured beneath en_GB.
To fix this, let's change the check to encompass all en_* languages, not
just en_US. Hopefully making the warning text appear for these use cases
will be good enough and we won't have to do something drastic like
secretly insert en_US after the last non-en_US English language, and C
after the last en_* language of any kind when there are other non-en_*
languages underneath it in the language list.
M +1 -1 kcms/region_language/languagelistmodel.cpp
M +1 -1 kcms/region_language/package/contents/ui/AdvancedLanguageSelectPage.qml