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.
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.
"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