Re: Deutsche locales und thousands_sep bei FreeBSD

From: Alexander Klein <Alexander.Klein(at)physiologie.med.uni-giessen.de>
Date: Wed, 05 Aug 2015 14:48:25 +0200

Hallo Olli,

Am 05.08.2015 um 12:32 schrieb Oliver Fromme:

> Und es geht hier ja nicht um wissenschaftliche Dokumente, die
> in TeX gesetzt werden (dort würde ich in der Tat auch eher
> schmale Abstände verwenden, d.h. "\," in TeX-Syntax), sondern
> in erster Linie um Ausgaben von Shell-Kommandos in Terminals
> mit Monospace-Schriftart.
>
> Übrigens gibt es kein einziges locale, in dem ein Leerzeichen
> als Trenner verwendet wird. Die meisten setzen einen Punkt
> oder ein Komma ein (letzteres z.B. bei en_US). Die Schweizer
> (de_CH) verwenden ein Apostroph.

Das ist mir alles durchaus klar, und was die Shell angeht, so bin ich
ziemlich hin und her gerissen zwischen den ganzen Alternativen. Vor
allem bei Punkt und Komma ist es einerseits so, daß man die beiden
wahrscheinlich schon irgendwo einmal als Tausendertrenner gesehen hat,
andererseits ist es zumindest bei der Software, die ich meist verwende,
eigentlich immer so, daß der Punkt auch schon als Dezimaltrenner benutzt
wird, egal was in LC_NUMERIC steht.

> Was aber noch schwerer wiegt, ist die Tatsache, dass die
> meisten gängigen Terminals nicht mit Proportionalschriften
> eingesetzt werden, weshalb dort U+202F genauso breit ist wie
> ein normales Leerzeichen und optisch nicht davon unterschieden
> werden kann. Damit ist es also wertlos.

Hmmm … ich habe mal ein Testlocale gebaut und finde es für einen
menschlichen Betrachter nicht allzu unübersichtlich mit Leerzeichen:

$ df -,k
Filesystem 1024-blocks Used […]
/dev/ada0p2 53 822 780 22 195 604 […]

Es gibt übrigens sowohl für die ISO- als auch für die UTF-Codierungen
ein geschütztes Leerzeichen in Standardbreite am Codepunkt 0xa0, das zum
Beispiel von cut (andere Filter habe ich jetzt nicht getestet) _nicht_
als Leerzeichen gesehen wird, was ganz nett ist, wenn eine solche
Ausgabe automatisiert weiterverarbeitet werden soll:

$ echo Non$'\u00a0'break-Space\<-\>Break\ Space
Non break-Space<->Break Space

$ echo Non$'\u00a0'break-Space\<-\>Break\ Space | cut -d \ -f 2
Space

> Ein Punkt als Trenner (bei deutschsprachigem locale) ist die
> naheliegendste Lösung […]

… sofern sich die Software dann auch an das Komma als Dezimaltrenner hält …

Em Ende landet man immer wieder bei dem alten Problem, daß moderne
Ansprüche an die Bildschirmausgabe nicht besonders gut zu den
überkommenen Konventionen und Beschränkungen des ASCII-Systems passen.

Hier gibt es auch noch etwas dazu im Abschnitt "Grouping Separator":

http://www.xencraft.com/resources/multi-currency.html

Schöne Grüße,

        Alexander

-- 
Alexander Klein
Physiologisches Institut der JLU-Gießen
Aulweg 129
35392 Gießen
http://www.med.uni-giessen.de/physio/
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 05 Aug 2015 - 14:49:06 CEST

search this site