Ulrich Spoerlein <q(at)uni.de> wrote:
> On Fri, 20.02.2004 at 11:34:52 +0100, Oliver Fromme wrote:
> > Es gibt meines Wissens leider keine Funktionalit=E4t im
> > Locale- bzw. NL-System, das die Pr=E4ferenz f=FCr eine 12-
> > oder 24-Stunden-Uhr in einer Sprache festlegt.
>
> Nunja, _das_ ist schlecht :(
Wie man's nimmt ... Das beste wäre eigentlich, dem Benut-
zer die Wahl zu überlassen (per Option, Environment, Konfi-
gurationsdatei oder was auch immer).
> > > 1. Frage: Wenn ich LC_TIME oder LC_ALL als Umgebungsvariable setze
> > > aendert sich an der Ausgabe von nl_langinfo() nichts. Warum?
> > Warum sollte sich etwas =E4ndern? Ich verstehe die Frage
> > nicht ganz.
>
> Wie funktioniert das dann in ls(1)? Ich kann ja
> env LC_ALL=en_US.ISO8859-1 ls -l
> aufrufen und bekomme englische Monatsnamen. Bei
> env LC_ALL=de_DE.ISO8859-1 ls -l
> hingegen deutsche. Sollte sich nl_langinfo() nicht die
> Umgebungsvariablen ansehen und dann den passenden String liefern?
Du bringst da Locales und NLS durcheinander, scheint mir.
Das sind orthogonale Konzepte.
nl_langinfo() liefert ja nicht die Monatsnamen, sondern nur
Formatstrings für bestimmte Zeit/Datum-Kombinationen. Mit
diesen kann »ls -l« aber nichts anfangen. Es ist sozusagen
die falsche Abstraktionsebene.
»ls -l« verwendet einfach »%b«, was laut strftime(3) die
»national representation of the abbreviated month name«
ist, also bei en_US-Locale »Oct« und bei de_DE-Locale »Okt«
ergibt. nl_langinfo() kommt dabei überhaupt nicht ins
Spiel.
> Nun gut, ich ging davon aus, das 24h in DE Standard sind, und 12h in
> den USA Standard sind.
Wenn ich mal kurz Haare spalte darf: Sowohl 24-Stunden als
Auch 12-Stunden-Darstellung sind sowohl in Deutschland als
auch in den USA Standards. Nur ist in Deutschland die 24-
Stunden-Darstellung in einigen Bereichen üblicher.
> Und ich ging weiterhin davon aus, das
> nl_langinfo() nicht einen _moeglichen_ String zurueckliefert, sondern
> den Standard String (also %H fuer DE und %I fuer US)
Nein, es liefert für jedes Land (sofern existent) den Stan-
dardformatstring für 24-Stunden-Format _und_ den Standard-
formatstring für 12-Stunden-Format -- Je nachdem, wonach
man fragt. ;-)
> > Ja, wenn Du z.B. nl_langinfo(9999) versuchst. Das ist
> > mit »invalid« gemeint. T_FMT_AMPM ist dagegen auch im
> > deutschen Locale völlig zulässig.
>
> Achso, aber ich will kein am/pm in ps! Das kann ich nicht parsen :)
Dann solltest Du Dich beim Autor von ps beklagen. :-)
> sk_SK.ISO8859-2 definiert kein AM/PM, da bekomme ich eine 24h Uhr.
Wahrscheinlich kenne die Leute dort sowas gar nicht.
> Werde wohl am/pm in der de-locale loeschen...
Kannst Du machen, aber das halte ich eher für Pfusch. Der
Bug ist in ps.
Gruß
Olli
PS: Der Kirchturm bei mir an der Ecke schlägt abends um
acht glücklicherweise auch nur achtmal, nicht zwanzigmal.
:-)
-- Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München Any opinions expressed in this message may be personal to the author and may not necessarily reflect the opinions of secnetix in any way. "That's what I love about GUIs: They make simple tasks easier, and complex tasks impossible." -- John William Chambless To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Mon 23 Feb 2004 - 15:47:34 CET