Locale-Variablen Case-Sensitiv

Hinweis: In dem Thema Locale-Variablen Case-Sensitiv gibt es 1 Antwort.
  • Hey Leute,


    mein System hat sich an verschiedensten Stellen beschwert, dass die Spracheinstellungen nicht richtig sind. An und für sich funktioniert meistens alles, Ausnahmen sind z.B. Amarok, aber das hatten wir in einem anderen Thema ist hier nicht von Belang. Im Folgenden habe ich eine kleine Testreihe mit export-Befehlen gemacht, um euch zu zeigen, was ich herausfinden konnte. Wir alle wissen, dass diese Änderungen also nicht permanent sind, wir wissen genauso gut, dass wir die Änderungen mit z.B. localectl permanent machen könnten. Aber darum geht es mir hier nicht, wie ihr sehen werdet.
    Ich teile die Testreihe in 3 Abschnitte ein. Ich rufe beispielhaft immer Firefox und Man auf, da ich von diesen sicher weiß, dass sie sich beschweren, wenn die Spracheinstellungen nicht richtig erkannt werden.


    1. Default, so wie das System installiert wurde (en_GB bei Installation ausgewählt und gewünscht), hier führe ich auch einmalig locale -a aus mit Filter für die englischen Auswahlmöglichkeiten.


    2. Nachdem ich LC_ALL mit derselben Lokale "en_GB.UTF-8" überschreibe, die für alle anderen gesetzt war:

    Wie zu sehen ist beschweren sich plötzlich weder Firefox noch Man, allerdings kann LC_ALL wohl kaum die richtige Lösung des Problems sein, da es individuelle Konfigurationen von allen anderen LC_*-Variablen zunichte macht.



    3. Mir viel auf, dass in der Ausgabe von locale -a alle UTF-Endungen klein geschrieben waren und nicht groß, wie in den LC_*-Variablen und LANG. Also habe ich das ganze mal mit kleinem utf-8 probiert:

    Und wie man sieht: Firefox und Man finden die Spracheinstellungen.


    Nach unset LC_ALL habe ich übrigens nochmal überprüft: Es hat alle anderen Variablen wieder zurückgesetzt, so wie sie in (1) waren.


    Also mit LC_ALL ist es wohl in Ordnung, wenn das UTF-8 groß geschrieben ist. Andernfalls muss ich die Endungen klein schreiben, damit alles ohne Fehlermeldungen funktioniert. Ich hab zwischendurch noch ein wenig Belesung im opensuse.org Forum betrieben, in diesem Thread war es scheinbar egal, ob die Endungen für UTF-8 in den Variablen groß geschrieben waren. Auch dort waren die Endungen der locale -a-Ausgabe klein. Das widerspricht der Beobachtung auf meinem System und führt mich zur Frage:


    Gibt es irgendwo eine Konfiguration, die das ganze auf "Ignore-Case" setzt, habe ich hier einen Bug gefunden oder ist dieses Verhalten gewollt? Linux ist ja im großen und ganzen Case-Sensitiv...


    Auch wenn es wohl offensichtlich ist, möchte ich es nochmal erwähnen: Das Verhalten ist auf meinem System jederzeit 100% reproduzierbar.


    Falls es ein Bug ist, würde mich auch interessieren an wen der adressiert werden sollte, da ich mir nicht sicher bin ob das z.B. ein openSUSE-spezifisches oder eher ein glibc-locale Problem ist, damit ich ihn an die richtige Stelle melden kann.


    lg.
    Antarctris

    Für den Inhalt des Beitrages 118129 haftet ausdrücklich der jeweilige Autor: Antarctris

  • Update:


    Ein Kommilitone hat mich eben in der Uni darauf hingewiesen, dass LC_IDENTIFICATION=en_GB.UTF-8,LANG=en_GB.UTF-8 so nicht gesetzt sein darf. Ich habe auch keine Ahnung woher das kommt. Weiterhin ist es möglich, dass bei LANG und LC_CTYPE versteckte Leerzeichen oder ähnliches am Ende stehen, da dort keine Anführungszeichen zu finden sind. In meinem Fall war es aber nur LC_IDENTIFICATION


    Ein einfacher Test mit export auf en_GB.UTF-8 gesetzt habe, hat das ganze bestätigt.


    Somit bleibt jetzt noch die Frage, wo der seltsame Wert LC_IDENTIFICATION=en_GB.UTF-8,LANG=en_GB.UTF-8 hergekommen ist. Über die Konsole habe ich ihn jedenfalls nicht eingegeben und schätze, dass er aus einem der grafischen Tools, bzw. deren Backends kommen muss.

    Für den Inhalt des Beitrages 118134 haftet ausdrücklich der jeweilige Autor: Antarctris