Re: Korrekte LC-Einstellung für die deutsche Sprache

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Mon, 6 Apr 2009 16:03:40 +0200 (CEST)

Polytropon <freebsd(at)edvax.de> wrote:
> da mein Wissen um mancherlei Konfigurationsdinge für den
> Desktop-Gebrauch von FreeBSD noch aus 4.x-Zeiten stammen,
> muß ich mir mal die Blöße geben und dies genau erfragen:
> Welche LC-Einstellung wird derzeit für die deutsche
> Sprache empfohlen?

Ich kann Dir (vermutlich) keine präzise Antwort auf Deine
Frage geben, aber ich kann zumindest beschreiben, wie ich
es handhabe.

Zunächst: Welche Einstellungen »empfohlen« sind, kommt
ganz darauf an, was Du haben möchtest.

Zum Beispiel möchte ich (natürlich) deutsche Umlaute ein-
geben und verwenden können. Andererseits möchte ich alle
Fehler- und sonstige Meldungen in der originalen Sprache
(also Englisch haben). Letzteres aus drei Gründen:
Erstens sind die deutschen Übersetzungen häufig irreführend
und manchmal schlichtweg falsch. Zweitens sind Support-
Foren und Mailinglisten häufig auf Englisch, und ich will
da nicht immer erst hin- und herübersetzen müssen und
raten, wie ein bestimmter Menüpunkt nun in der jeweils
anderen Sprache heißt. Drittens kann der Autor in der
Regel mit deutschen Ausgaben nichts anfangen, wenn man
ihm einmal einen Bug-Report o.ä. schicken muss.

Auch den Dezimalpunkt möchte ich als Punkt und nicht als
Komma haben. Die Verwechslungsgefahr ist mir sonst zu
groß.

Aus o.g. Gründen setze ich daher weder LC_ALL noch LANG,
sonder nur LC_CTYPE=de_DE.ISO8859-1 (bzw. -15 für das
Euro-Zeichen). Das genügt für die Nutzung von Umlauten,
auch in Dateinamen, wenn man will (ich persönlich versuche
das zu vermeiden, aber rein technisch geht es natürlich).

Wenn man einmal bei einem bestimmten Programm deutsche
Menüs o.ä. haben möchte, dann kann man gezielt nur dieses
Programm mit LC_MESSAGES=xxx oder LANG=xxx starten.

> LC_ALL=UTF-8

Das Problem damit ist, dass einige Teile des Systems noch
nicht mit UTF-8 (oder anderen Multibyte-Codierungen) zu-
rechtkommen. An erster Stelle sei hier syscons genannt.

> gesetzt. Eine landesspezifische Kennung war mir da nicht
> aufgefallen.

Das ist auch nicht landesspezifisch, sondern nur für
LC_CTYPE spezifiziert: $ ls /usr/share/locale/UTF-8
Es enthält keine Informationen für LC_COLLATE usw.

Für die landesspezifische Version müsstest Du entsprechend
de_DE.UTF-8 einstellen. Das Problem hierbei ist, dass der
Multibyte-Support bisher nur teilweise implementiert ist,
d.h. die Collation wird trotzdem nicht korrekt funktionie-
ren.

Zum jetzigen Zeitpunkt kann man die Verwendung von UTF-8
unter FreeBSD eigentlich (leider) noch nicht empfehlen.

> Was ist, wenn man mal Dateinamen hat, die mit Umlauten
> oder Ligaturen durchsetzt sind? Und wenn man diese dann
> auf ein System mit einer anderen Zeichensatzeinstellung
> kopiert, kommt dann Müll bei raus?

Das ist ein Problem der Dateisysteme. Die Semantik der
Zeichensätze ist dort bestenfalls schwammig. UFS kennt
historisch nur ASCII, wobei es seit geraumer Zeit keinen
Hinderungsgrund gibt, 8bit-Zeichen zu verwenden (also
z.B. ISO8859-X). Bei Multibyte-Encodings kann theoretisch
das Problem auftreten, dass ein (normales) Zeichen zu einer
Multibyte-Kette codiert wird, das z.B. das Byte 47 enthält.
Das ist aber dummerweise der Schrägstrich, der als Trenner
für Verzeichniskomponenten verwendet wird. Und natürlich
tritt das Problem der Portabilität auf, insbesondere bei
Netzwerk-Dateisystemen (NFS) und bei transportablen Medien
wie USB-Sticks. Wenn Du einen USB-Stick, den Du auf einem
System mit UTF-8 beschrieben hast, in einen Rechner mit
ISO8859 steckst, darf das idealerweise nicht zu Problemen
führen -- Das kannst Du aber nur garantieren, wenn Du Dich
auf ASCII beschränkst.

Einige andere Dateisysteme haben es da besser. NTFS z.B.
unterstützt 16bit-Zeichen; konvertiert wird ggf. automa-
tisch.

> Ach so, und was ist eigentlich mit LANG? Ist das ein
> "Linuxismus", oder gibt es das unter FreeBSD auch?

Wirf mal einen Blick in die environ(7)-Manpage. LANG ist
im Grunde genommen ein Default für alle LC_*-Variablen,
die nicht gesetzt sind (im Gegensatz zu LC_ALL, was alle
anderen LC_*-Variablen überschreibt).

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
"File names are infinite in length, where infinity is set to 255 characters."
        -- Peter Collinson, "The Unix File System"
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 06 Apr 2009 - 16:06:34 CEST

search this site