Login
Newsletter

Thema: glibc und X11 internationalisieren

5 Kommentar(e) || Alle anzeigen ||  RSS
Kommentare von Lesern spiegeln nicht unbedingt die Meinung der Redaktion wider.
0
Von Harald Nikolisin am Di, 25. März 2003 um 17:23 #
weiss jemand wie man die locales unter C abfragt?

mir fällt nur ein mit:
char *lang = getenv("LANG");

die umgebungsvariable abzufragen, das geht bestimmt auch eleganter. in der glibc doku hab ich allerdings nur gefunden, wie man mit setlocale() diese verändert.

[
| Versenden | Drucken ]
  • 0
    Von bjacke am Mi, 26. März 2003 um 10:42 #
    nl_langinfo(CODESET) z.B. liefert den character set der locale wider. Anderes analog
    [
    | Versenden | Drucken ]
    0
    Von Graf Zahl am Fr, 28. März 2003 um 13:25 #
    Unter FreeBSD ist es so:
    "A locale argument of NULL causes setlocale() to return the current locale"

    und unter linux scheint es auch so:
    "The setlocale() function is used to set or query the program's current locale."

    Beachte, dass LANG, LC_ALL, LANGAUGE Vorrang vor allen anderen spezifischen LC_* Einstellungen haben, wenn sie parallel gestzt sind.

    Bsp.:
    Umgebungsvariablen sind gesetzt auf:

    LC_ALL=de_DE.ISO8859-15
    LC_COLLATE=en_US.US-ASCII

    Dein Programm sollte nur LC_ALL auswerten und somit auch LC_COLLATE auf de_DE.ISO8859-15 setzen.

    Viel Erfolg

    [
    | Versenden | Drucken ]
0
Von Markus am Do, 27. März 2003 um 08:57 #
Welche Einstellungen muss ich treffen um englische Errormeldungen, und auch die englische Hilfe
beizubehalten.
thx
[
| Versenden | Drucken ]
  • 0
    Von Graf Zahl am Fr, 28. März 2003 um 13:59 #
    Das hängt natürlich vom jeweiligen Programm ab und dessen Unterstützung für I18N z.B: durch "gettext (libintl)".

    Deine Umgebungsvariablen könnten dann z.B. ungefähr so aussehen (FreeBSD):

    LC_TIME=de_DE.ISO8859-15
    LC_NUMERIC=de_DE.ISO8859-15
    LC_MONETARY=de_DE.ISO8859-15
    LC_CTYPE=en_US.US-ASCII
    LC_COLLATE=en_US.US-ASCII
    LC_MESSAGES=en_US.US-ASCII

    Zu empfehlen ist dieses Vorgehen aber nicht. Einige Programme bringt so eine Konstellation aus dem Tritt.

    "locale"s sind hochgrading Systemabhängig deswegen solltest Du Dir die passenden man-pages durchlesen, wie setlocale(3). Das nervigste an der Sache ist vor allem die teils wahllose Bezeichnung der "codesets" (z.B. ISO-8859-15 o. ISO8859-15 oder gar ISO885915, et cetera)

    man 3 setlocale für SuSE7.3

    [
    | Versenden | Drucken ]
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten