Deutsche locales und thousands_sep bei FreeBSD

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Wed, 5 Aug 2015 09:47:49 +0200 (CEST)

Moin,

(Wer das alles nicht lesen mag, möchte sich vielleicht
erstmal das Beispiel ganz unten anschauen.)

Hat sich schonmal jemand Gedanken darüber gemacht, warum
bei FreeBSD in den deutschen locales, genauer gesagt in
der Kategorie LC_NUMERIC, kein Wert für thousands_sep
gesetzt ist? Hätte das irgendwelche negativen Folgen?
Ich denke nicht, denn etliche andere europäische locales
haben schon seit langer Zeit einen Punkt in thousands_sep
(z.B. da_DK, fi_FI, no_NO).

Das Fehlen beim deutschen locale führt u.a. dazu, dass die
Option "-," bei ls(1), df(1) nicht funktioniert, ebenso wie
die Formatoption "'" (Apostroph) bei printf(1), printf(3)
usw., bei der Option -i von dpv(1) und an tausend (sic! ;-)
anderen Stellen.

Bevor ich einen Patch produziere: Gibt es irgendwelche
Meinungen dazu? Irgendwelches Pro & Contra, das ich evtl.
übersehen habe?

Tatsächlich habe ich seit einiger Zeit als work-around in
meinem Environment LC_NUMERIC=no_NO.UTF-8 gesetzt, ohne
dass ich bisher irgendwelche unerwünschten Nebeneffekte
feststellen konnte (außerdem habe ich alias df="df -k,"
und diverse andere Aliase).

Gruß
   Olli

PS: Falls jemand nachschauen möchte: Die Definitionen für
LC_NUMERIC sind unter src/share/numericdef zu finden.
(Neben thousands_sep="." muss auch der Wert für grouping
auf "3;3" gesetzt sein, damit immer drei Ziffern gruppiert
werden.)

Die gesetzten Werte kann man in der Shell so herausfinden:
(Das grouping wird als "raw bytes" ausgegeben: "^?" steht
für ein Nullbyte, "^C" für den Bytewert 3.)

$ LC_NUMERIC=de_DE.UTF-8 locale -k thousands_sep grouping | cat -v
thousands_sep=""
grouping="^?"

$ LC_NUMERIC=no_NO.UTF-8 locale -k thousands_sep grouping | cat -v
thousands_sep="."
grouping="^C^C"

Und ein praktisches Beispiel:

$ LC_NUMERIC=de_DE.UTF-8 df -k, /arch4
Filesystem 1024-blocks Used Avail Capacity Mounted on
/dev/ada5p1 3905661660 3580309000 12899728 100% /arch4

$ LC_NUMERIC=no_NO.UTF-8 df -k, /arch4
Filesystem 1024-blocks Used Avail Capacity Mounted on
/dev/ada5p1 3.905.661.660 3.580.309.000 12.899.728 100% /arch4

(Die Zeichenkodierung spielt keine Rolle; mit ISO8859-15
anstelle von UTF-8 kommt dasselbe heraus.)

-- 
Oliver Fromme,  secnetix GmbH & Co. KG,  Marktplatz 29, 85567 Grafing
Handelsregister:  Amtsgericht Muenchen, HRA 74606, Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsreg.: Amtsgericht München,
HRB 125758, Geschäftsführer:  Maik Bachmann,  Olaf Erb,  Ralf Gebhart
FreeBSD-Dienstleistungen/-Produkte + mehr: http://www.secnetix.de/bsd
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 - 09:48:01 CEST

search this site