Bug 429474

Summary: Does not show all installed languages
Product: [Applications] systemsettings Reporter: David <solbeziel>
Component: kcm_languageAssignee: Eike Hein <hein>
Status: RESOLVED FIXED    
Severity: normal CC: bjoernv, icegood1980, justin.zobel, katyaberezyaka, nate, plasma-bugs, solbeziel
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Debian testing   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description David 2020-11-21 20:36:40 UTC
SUMMARY

KDE Regional Settings Language selection - insufficient language selection blocks off access to message catalogues for non-KDE applications.

STEPS TO REPRODUCE
1. Try to select Swampy Cree as primary KDE language.
2. Try to select Esperanto as primary KDE language.
3. 

OBSERVED RESULT
At least one of those will not be possible.

EXPECTED RESULT
Arbitrary language selection should be possible, at least from the set of languages supported on the host system, and possibly extending to nonexistent languages, or inconsequentially translated or untranslated languages.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Debian testing (bullseye/sid)

KDE Plasma Version: 5.19
KDE Frameworks Version: 5.74
Qt Version: 5.15

ADDITIONAL INFORMATION

The list of languages offered by KDE plasma translations control panel seems arbitrary.

* It doesn't correspond to the set of locales that have been generated by locale-gen

* It doesn't correspond to the set of languages in /usr/[local/]share/i18n/SUPPORTED

* It doesn't correspond to the set of languages listed in /usr/share/locale/kf5_all_languages

* It doesn't correspond to any i18n or l10n packages that are installed on my system. 

* It doesn't (under Debian) correspond to the list of task-<language>-kde-desktop packages that are installed. 

* My system default language is not shown on the list of available languages.

This is quite a problem, because KDE uses this language list to set the LANGUAGE environment variable for everything else. This cuts off access to the message catalogues in many languages that originate outside KDE.

I ought to be able to select any arbitrary language, not just ones that KDE provides. For example, my system default is Esperanto, and a lot of applications are at least partially translated into Esperanto. The lack of selection in the KDE control module means that I need to take extra measures to see my language in non-KDE applications.
Comment 1 David 2020-11-21 20:43:52 UTC
It is also noteworthy that I cannot empty the language selection list, and thereby prevent KDE from setting the LANGUAGE environment variable at all. I should be able to select an empty list in order to simply accept the host system's default settings for LANGUAGE and LC_*.
Comment 2 David 2020-12-11 16:27:06 UTC
There is a workaround for this bug:

The file ~/.config/plasma-localerc can be directly edited to select arbitrary languages to be used on next login.

In my case, this allowed inserting "eo" into the LANGUAGE= path so that I could see more Esperanto on my desktop.

Also, it allows directly setting "LANG=...", which solved some other problems having to do with language encoding.

It seems that KDE likes to encode LANG=xx without explicitly specifying the encoding (LANG=xx_XX.UTF-8). This behaviour should be changed, since KDE, Qt, X11, and Linux each make their own assumptions about encodings and sometimes they seem to disagree with each other.
Comment 3 Nate Graham 2021-09-30 19:19:39 UTC
*** Bug 309608 has been marked as a duplicate of this bug. ***
Comment 4 hanyoung 2022-07-02 09:30:59 UTC
Git commit 134e2d5c989c36ac0e985ee0ae382996c6b7b56e by Han Young.
Committed on 02/07/2022 at 09:29.
Pushed by hanyoung into branch 'master'.

merge Language and Formats
Related: bug 192019, bug 341235, bug 344588, bug 394477, bug 397974, bug 397975, bug 403580, bug 417564, bug 420268, bug 431292, bug 444772, bug 446785, bug 447787, bug 448324, bug 448355, bug 451919, bug 451944, bug 454991

closes https://invent.kde.org/plasma/plasma-workspace/-/issues/23

M  +1    -0    .kde-ci.yml
M  +52   -8    CMakeLists.txt
M  +2    -1    config-workspace.h.cmake
D  +0    -2    doc/kcontrol/formats/CMakeLists.txt
D  +0    -63   doc/kcontrol/formats/index.docbook
R  +1    -1    doc/kcontrol/region_language/CMakeLists.txt [from: doc/kcontrol/translations/CMakeLists.txt - 063% similarity]
R  +-    --    doc/kcontrol/region_language/go-top.png [from: doc/kcontrol/translations/go-top.png - 100% similarity]
R  +36   -23   doc/kcontrol/region_language/index.docbook [from: doc/kcontrol/translations/index.docbook - 050% similarity]
A  +-    --    doc/kcontrol/region_language/list-remove.png
D  +-    --    doc/kcontrol/translations/list-remove.png
M  +1    -2    kcms/CMakeLists.txt
D  +0    -30   kcms/formats/CMakeLists.txt
D  +0    -5    kcms/formats/Messages.sh
D  +0    -61   kcms/formats/formatssettings.kcfg
D  +0    -80   kcms/formats/kcmformats.cpp
D  +0    -34   kcms/formats/kcmformats.h
D  +0    -183  kcms/formats/localelistmodel.cpp
D  +0    -140  kcms/formats/optionsmodel.cpp
D  +0    -126  kcms/formats/package/contents/ui/main.qml
A  +75   -0    kcms/region_language/CMakeLists.txt
A  +8    -0    kcms/region_language/Messages.sh
R  +2    -27   kcms/region_language/exampleutility.cpp [from: kcms/formats/exampleutility.cpp - 052% similarity]
A  +22   -0    kcms/region_language/exampleutility.h     [License: GPL(v2.0+)]
A  +82   -0    kcms/region_language/kcm_regionandlang.desktop [TRAILING SPACE] ** [TRAILING SPACE] **
R  +4    -4    kcms/region_language/kcm_regionandlang.json [from: kcms/formats/kcm_formats.json - 098% similarity]
A  +250  -0    kcms/region_language/kcmregionandlang.cpp     [License: GPL(v2.0+)]
A  +58   -0    kcms/region_language/kcmregionandlang.h     [License: GPL(v2.0+)]
A  +372  -0    kcms/region_language/languagelistmodel.cpp     [License: GPL(v2.0+)]
A  +100  -0    kcms/region_language/languagelistmodel.h     [License: GPL(v2.0+)]
A  +30   -0    kcms/region_language/localegenerator.cpp     [License: LGPL(v2.0+)]
A  +17   -0    kcms/region_language/localegenerator.h     [License: LGPL(v2.0+)]
A  +19   -0    kcms/region_language/localegeneratorbase.cpp     [License: GPL(v2.0+)]
A  +23   -0    kcms/region_language/localegeneratorbase.h     [License: GPL(v2.0+)]
A  +32   -0    kcms/region_language/localegeneratorglibc.cpp     [License: GPL(v2.0+)]
A  +24   -0    kcms/region_language/localegeneratorglibc.h     [License: GPL(v2.0+)]
A  +101  -0    kcms/region_language/localegeneratorubuntu.cpp     [License: GPL(v2.0+)]
A  +27   -0    kcms/region_language/localegeneratorubuntu.h     [License: GPL(v2.0+)]
A  +36   -0    kcms/region_language/localegenhelper/CMakeLists.txt
A  +187  -0    kcms/region_language/localegenhelper/localegenhelper.cpp     [License: GPL(v2.0+)]
A  +46   -0    kcms/region_language/localegenhelper/localegenhelper.h     [License: GPL(v2.0+)]
A  +20   -0    kcms/region_language/localegenhelper/org.kde.localegenhelper.conf
A  +21   -0    kcms/region_language/localegenhelper/org.kde.localegenhelper.policy
A  +8    -0    kcms/region_language/localegenhelper/org.kde.localegenhelper.service.in
A  +158  -0    kcms/region_language/localelistmodel.cpp     [License: GPL (v2+)]
R  +22   -22   kcms/region_language/localelistmodel.h [from: kcms/formats/localelistmodel.h - 060% similarity]
A  +197  -0    kcms/region_language/optionsmodel.cpp     [License: GPL(v2.0+)]
R  +21   -11   kcms/region_language/optionsmodel.h [from: kcms/formats/optionsmodel.h - 054% similarity]
A  +204  -0    kcms/region_language/package/contents/ui/AdvancedLanguageSelectPage.qml     [License: LGPL(v3.0+)]
A  +238  -0    kcms/region_language/package/contents/ui/main.qml     [License: LGPL(v3.0+)]
A  +64   -0    kcms/region_language/regionandlangsettings.cpp     [License: GPL(v2.0+)]
A  +21   -0    kcms/region_language/regionandlangsettings.h     [License: GPL(v2.0+)]
A  +37   -0    kcms/region_language/regionandlangsettingsbase.kcfg
R  +2    -2    kcms/region_language/regionandlangsettingsbase.kcfgc [from: kcms/formats/formatssettings.kcfgc - 055% similarity]
A  +17   -0    kcms/region_language/settingtype.h     [License: GPL(v2.0+)]
D  +0    -49   kcms/translations/CMakeLists.txt
D  +0    -2    kcms/translations/Messages.sh
D  +0    -191  kcms/translations/language.cpp
D  +0    -32   kcms/translations/language.h
D  +0    -312  kcms/translations/package/contents/ui/main.qml
D  +0    -86   kcms/translations/translations.cpp
D  +0    -53   kcms/translations/translations.h
D  +0    -193  kcms/translations/translationsmodel.cpp
D  +0    -72   kcms/translations/translationsmodel.h
D  +0    -27   kcms/translations/translationssettings.cpp
D  +0    -24   kcms/translations/translationssettings.h
D  +0    -28   kcms/translations/translationssettingsbase.kcfg
D  +0    -6    kcms/translations/translationssettingsbase.kcfgc

The files marked with ** at the end have a problem. Either the file contains a trailing space or the file contains a call to potentially dangerous code. Please read: https://community.kde.org/Sysadmin/CommitHooks#Email_notifications for further information. Please either fix the trailing space or review the dangerous code.


https://invent.kde.org/plasma/plasma-workspace/commit/134e2d5c989c36ac0e985ee0ae382996c6b7b56e