Bug 383108

Summary: only english in the list for available languages
Product: [Applications] systemsettings Reporter: Alexander Fieroch <alexander.fieroch>
Component: kcm_languageAssignee: John Layt <jlayt>
Status: RESOLVED NOT A BUG    
Severity: normal CC: alexander.fieroch
Priority: NOR    
Version First Reported In: 5.8.7   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: mixed languages although only English seems to be available

Description Alexander Fieroch 2017-08-04 08:27:56 UTC
Created attachment 107064 [details]
mixed languages although only English seems to be available

Kubuntu 16.04 
KDE 5.8.7 (PPA)


Hi,

I have some systems where it is not possible to change the language to something other than American English although I've installed the necessary language packs. To top it the language is horribly mixed up at some systems (screenshot attached) that have previously configured German as preferred language and where German is now missing in the list although packages are installed.

I can only select American English in the list for available languages in system settings. I have installed the German language packs too but German is not shown.


    $ dpkg -l | grep language-pack
    ii  language-pack-de                                1:16.04+20160627                           all          translation updates for language German
    ii  language-pack-de-base                           1:16.04+20160627                           all          translations for language German
    ii  language-pack-en                                1:16.04+20161009                           all          translation updates for language English
    ii  language-pack-en-base                           1:16.04+20160627                           all          translations for language English
    ii  language-pack-kde-de                            1:14.04+20140305.0ubuntu1                  all          KDE translation meta package for language de
    ii  language-pack-kde-en                            1:14.04+20140305.0ubuntu1                  all          KDE translation meta package for language en_GB

    $ dpkg -l | grep -E "kde-l10n|qttranslation"
    ii  kde-l10n-de                                     4:16.04.3-0ubuntu1~ubuntu16.04~ppa2        all          de (de) localization for KDE
    ii  kde-l10n-engb                                   4:16.04.3-0ubuntu1~ubuntu16.04~ppa2        all          en_GB (engb) localization for KDE
    ii  qttranslations5-l10n                            5.6.1-2build1~~xenialoverlay1~1            all          translations for Qt 5



    $ cat .config/plasma-localerc
    [Formats]
    LANG=de_DE.UTF-8

    [Translations]
    LANGUAGE=



If I append de, de_DE or de_DE.UTF-8 to LANGUAGE= I get the message "The translation files for the languages with the code 'de' could not be found. These languages have been removed from your configuraion. If you want to add them back, please install the localization files for it and the languages again."
in the language settings after login.

I have installed localepurge but it should not touch german and english files:


    $ tail -6 /etc/locale.nopurge
    de_DE
    de_DE@euro
    de_DE.UTF-8
    en_US
    en_US.ISO-8859-15
    en_US.UTF-8



Installed locales are german and english:

    $ locale -a
    C
    C.UTF-8
    de_AT.utf8
    de_BE.utf8
    de_CH.utf8
    de_DE
    de_DE@euro
    de_DE.iso88591
    de_DE.iso885915@euro
    de_DE.utf8
    de_LI.utf8
    de_LU.utf8
    deutsch
    en_AG
    en_AG.utf8
    en_AU.utf8
    en_BW.utf8
    en_CA.utf8
    en_DK.utf8
    en_GB.utf8
    en_HK.utf8
    en_IE.utf8
    en_IN
    en_IN.utf8
    en_NG
    en_NG.utf8
    en_NZ.utf8
    en_PH.utf8
    en_SG.utf8
    en_US.utf8
    en_ZA.utf8
    en_ZM
    en_ZM.utf8
    en_ZW.utf8
    german
    POSIX



Environment:

    $ printenv | grep -E "LANG|LC"
    LC_PAPER=de_DE.UTF-8
    LC_ADDRESS=de_DE.UTF-8
    LC_MONETARY=de_DE.UTF-8
    LC_NUMERIC=de_DE.UTF-8
    LC_TELEPHONE=de_DE.UTF-8
    LC_IDENTIFICATION=de_DE.UTF-8
    LANG=en_US.UTF-8
    LC_MEASUREMENT=de_DE.UTF-8
    LANGUAGE=
    LC_TIME=de_DE.UTF-8
    LC_NAME=de_DE.UTF-8


The system is Kubuntu 16.04 with KDE 5.8.7 (PPA)


I tried to reproduce this bug in a VM with a fresh installed Kubuntu 16.04 and KDE 5.8.7. I could not reproduce it, but it is not a unique problem because I have 5 systems - all with the same problem. 
The only difference between all above localization settings is in .config/plasma-localerc.
The variable LANGUAGE is empty on computers where no other languages than English are listed. The new VM installation has a variable LANGUAGE=de.
If I set this variable in the same manner on a system with broken languages - again after reboot in regional settings I only get the message

    The translation files for the language with the code 'de' could not be found. The language has been removed from your configuration. If you want to add it back, please install the localization files for it and add the language again.


Then the variable LANGUAGE in .config/plasma-localerc is empty again. 

Now I tried reinstalling all packages on a broken system using
  apt install --reinstall `dpkg --get-selections > packages; cat packages | grep install | awk '{print $1}' | tr '\n' ' '
Unfortunately it does not fix the list with missing languages. I created a new user but there is the same problem. So I think it is a configuration problem that is not overwritten with the command for reinstalling above.


I'd like to investigate some more to solve this bug but I need some hints. 
1) What file exactly is system settings looking for to get the list for available languages?
2) Where does KDE expect translation files for the code 'de' to not remove it from my configuration LANGUAGE=de?

Thank you very much!
Comment 1 Alexander Fieroch 2017-08-04 10:32:46 UTC
Finally I've solved this problem! It's not a bug!

There was a misconfiguration with localepurge. I noticed that /usr/share/locale/de/LC_MESSAGES/ was empty and I had to add "de" to localepurge.
After reinstalling locales using /usr/share/doc/localepurge/reinstall_debs.sh I can select German as available language again!