Re: Euro-Zeichen mal da und mal nicht
Andreas Janssen <andreas.janssen@bigfoot.com> writes:
> Heike C. Zimmerer (<hcz@hczim.de>) wrote:
>
>> Andreas Janssen <andreas.janssen@bigfoot.com> writes:
>>
>>> LC_ALL="de_DE@euro"
>>> LANGUAGE="de_DE@euro"
>>> LANG=de_DE@euro.ISO-8859-15
>>
>> LC_ALL überschreibt alle LC_-Variablen, und die überschreiben wiederum
>> LANG. Du kannst im obigen Beispiel also ohne Unterschied
>> LANG=BAIRISCH setzen; das macht keinen Unterschied.
>
> Wenn ich das richtig verstehe, dann müsste ich mit folgenden
> Einstellungen in der /etc/environment ja, da LC_ALL LANG überschreibt,
> deutsche Ausgabe bei Programmen bekommen:
>
> andreas@sirius:~$ cat /etc/environment
> LC_ALL=de_DE@euro
> LANG=C
Jein. LANG zu setzen ist in diesem Fall völlig witzlos. Und "unset
LANGUAGE" hast Du vergessen.
>
> Aber:
>
> andreas@sirius:~$ echo $LC_ALL
> de_DE@euro
> andreas@sirius:~$ echo $LANG
> C
> andreas@sirius:~$ ls --help
> Usage: ls [OPTION]... [FILE]...
> List information about the FILEs (the current directory by default).
> Sort entries alphabetically if none of -cftuSUX nor --sort.
> [...]
Wo ist das Problem?
| hcz@hczim:/etc$ LC_ALL=de_DE@euro ls x
| ls: x: No such file or directory
Englisch. Also dasselbe wie bei Dir. Aber:
| hcz@hczim:/etc$ LC_ALL=de_DE.UTF-8 ls x
| ls: x: Datei oder Verzeichnis nicht gefunden
Komisch. Jetzt mache ich etwas Magie, dann wiederhole ich das erste
Kommando:
| hcz@hczim:/etc$ LC_ALL=de_DE@euro ls x
| ls: x: Datei oder Verzeichnis nicht gefunden
Nun gehts plötzlich.
Des Rätsels Lösung: Ich habe dazwischen de_DE@euro zur Liste der
unterstützten locales hinzugefügt (man locale-gen). Solange es dort
nicht existiert, kannst Du es lange zuweisen. Deshalb hatte es keinen
Effekt (im Gegensatz zu de_DE.UTF-8, das existierte).
man perllocale enthält eine ganz gute Beschreibung des locale-Systems
der C-Library, wenn man die Perl-spezifischen Teile ignoriert. Sehr
empfehlenswert.
Gruß,
Heike
Reply to: