linux-l: locale ... ich weiss nicht mehr weiter

Gerald Erdmann gerald at stepman.com
Mi Dez 6 23:45:18 CET 2000


Hallo zusammen!

Ich versuche seit einigen Tagen verzweifelt, "locale" zum Laufen zu
bekommen, doch irgendwie beiss ich mir alle erdenklichen Zähne aus. Da ich
eigentlich alles nach Anleitung gemacht habe und es trotzdem nicht so will
wie es soll, hoffe ich, daß einer von Euch meinen Fehler findet.

Hintergrund, ich will die WWW-Suchmaschine htdig (www.htdig.org) zum Laufen
bekommen. Das ansich ist ja kein größeres Problem, schwieriger wirds, wenn
man deutsche Texte indizieren will, denn dafür will htdig mittels locale auf
eine deutsche Kodierung/Lokalisierung umschalten. Da dies aber bei mir nicht
funktionierte, mußte ich das nlsutil/locale-Paket nach installieren. Doch
irgendwie mags immer noch nicht.

locale ist m. E. richtig installiert:

/usr/share/locale/de_DE
/usr/share/locale/de_DE/LC_CTYPE
/usr/share/locale/de_DE/LC_COLLATE
/usr/share/locale/de_DE/LC_MONETARY
/usr/share/locale/de_DE/LC_NUMERIC
/usr/share/locale/de_DE/LC_TIME
/usr/share/locale/de_DE/LC_MESSAGES
/usr/share/locale/de_DE/LC_MESSAGES/SYS_LC_MESSAGES
/usr/share/locale/de_DE/libc.cat

Doch ein Umstellen mag nicht so richtig funktionieren:

[mimi root:de_DE]# locale
LANG="C"
LC_COLLATE="C"
LC_CTYPE="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_MESSAGES="C"
LC_RESPONSE="C"
LC_ALL=C
[mimi root:de_DE]# export LC_ALL=de_DE
[mimi root:de_DE]# locale
setlocale(LC_COLLATE): Datei oder Verzeichnis nicht gefunden
setlocale(LC_CTYPE): Datei oder Verzeichnis nicht gefunden
setlocale(LC_MONETARY): Datei oder Verzeichnis nicht gefunden
setlocale(LC_NUMERIC: Datei oder Verzeichnis nicht gefunden
setlocale(LC_RESPONSE): Datei oder Verzeichnis nicht gefunden
setlocale(LC_TIME): Datei oder Verzeichnis nicht gefunden
LANG="de_DE"
LC_COLLATE="de_DE"
LC_CTYPE="de_DE"
LC_MONETARY="de_DE"
LC_NUMERIC="de_DE"
LC_TIME="de_DE"
LC_MESSAGES="de_DE"
LC_RESPONSE="de_DE"
LC_ALL=de_DE


setlocale schlägt ständig fehl, auch wenn ich das als C-Miniprogramm
aufrufe:

#include <locale.h>
#include <stdio.h> 
#include <errno.h>

main(int argc, char **argv)
{ 
char *rc; 
if (argc != 2) 
{ 
printf("Usage: localetest locale\n");
exit(1); 
} 

printf("Testing %s\n", argv[1]);
rc= setlocale(LC_ALL, argv[1]);
if (rc== NULL) 
printf("locale \"%s\" not supported!\n", argv[1]);
else 
printf("locale set to \"%s\".\n", rc);
exit(0); 

Ich habe einfach keine Idee mehr, was hier falsch läuft. Ich hab schon den
Code von libc analysiert, konnte jedoch nichts feststellen.

Ich verwendene noch Kernel 2.0.36 und lib 5.4.4. Ich update auf 5.4.46
schlug fehl, da danach diverse andere Programme nicht mehr wollten,
scheinbar ein anderer Lib-Konflikt. Ich denke aber, daß locale auch mit
5.4.4 funktionieren sollte (so zumindest mini-HOWTO Locale).


Der Verzweiflung nahe ... ;-)

Weiß jemand Rat?

Gerald
-- 
Gerald Erdmann   gerald at stepman.com

STEPMAN SOLUTIONS
+49 30 39731400  -401 (Fax)
Berlin  -  Germany  - Earth



Mehr Informationen über die Mailingliste linux-l