Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Wo sucht sich X11 seine Locale-Infos zusammen?
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
Guenther Brunthaler
Apprentice
Apprentice


Joined: 22 Jul 2006
Posts: 219
Location: Vienna

PostPosted: Tue Aug 08, 2006 1:00 am    Post subject: Wo sucht sich X11 seine Locale-Infos zusammen? Reply with quote

Da es unter Linux ja so einfach ist sich eine Locale nach eigenen Wünschen zu erstellen, habe ich mir eine Definitionsdatei für eine neue Locale "de_AT.utf8@vienna" erstellt.

Dazu habe ich zuerst die Locale "de_AT@euro" geklont:

Code:
# mkdir -p /usr/local/share/i18n/locales
# cp /usr/share/i18n/locales/de_AT@euro \
     /usr/local/share/i18n/locales/de_AT@vienna


dann die neue datei Datei entsprechend meinen Wünschen angepasst und schließlich mittels

Code:
# localedef -f UTF-8 \
            -i /usr/local/share/i18n/locales/de_AT@vienna \
            --no-archive \
            de_AT.utf8@vienna


die neue Locale als Unterverzeichnis "/usr/lib/locale/de_AT.utf8@vienna/" erzeugt. (Das --no-archive habe ich verwendet um zu verhindern, dass er mir nur einen Eintrag in "/usr/lib/locale/locale-archive" erzeugt, statt ein schönes Unterverzeichnis. So wie ich es verstehe ist das locale-Archive ohnehin nur als Cache gedacht, und nicht erforderlich. Jedenfalls funktionierte bislang alles auch ohne locale-Archive bestens. Zumindest in der Konsole.)

$LANG ist nun auf "de_AT.utf8@vienna" gesetzt, und auch $LANGUAGE und $NLSPATH sind OK.

Ausserhalb von X11 funktioniert nun alles prima - alles funktioniert, wie es soll.

Aber sobald ich irgend ein X-Programm starte welches Locale-Infos verwendet, etwa xclock, kommt immer die Meldung:

Code:
# xclock
Warning: locale not supported by Xlib, locale set to C


Ich habe bereits die Datei /usr/lib/X11/locale/locale.alias editiert und die folgenden Einträge hinzu gefügt:

Code:
de_AT.utf8@vienna                               de_AT.UTF-8
de_AT.UTF-8@vienna                              de_AT.UTF-8


Die Datei /usr/lib/X11/locale/locale.dir enthält bereits gültige Einträge für "de_AT.UTF-8", welche alle Verweise auf die Datei "/usr/lib/X11/locale/en_US.UTF-8/XLC_LOCALE" darstellen, die ebenfalls existiert.

Somit scheint zwar alles da zu sein was benötigt wird, aber trotzdem kommen immer noch diese dämlichen Meldungen und die X-Programme verwenden die Default-Locales C oder POSIX, genau als würden sie meine Locale nicht finden.

Dabei verrät strace, dass sie sehr wohl auf die Locale-Dateien zugreifen - nur scheint dies nicht zu reichen:

Code:
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
...
open("/usr/lib/locale/de_AT.utf8@vienna/LC_IDENTIFICATION", O_RDONLY) = 3
open("/usr/lib/locale/de_AT.utf8@vienna/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = 3
...
open("/usr/lib/X11/locale/locale.dir", O_RDONLY) = 4 
open("/usr/lib/X11/locale/locale.alias", O_RDONLY) = 4
open("/usr/lib/X11/locale/locale.dir", O_RDONLY) = 4 
open("/usr/lib/X11/locale/locale.alias", O_RDONLY) = 4
open("/usr/lib/X11/locale/locale.dir", O_RDONLY) = 4 
Warning: locale not supported by Xlib, locale set to C
open("/usr/lib/X11/locale/locale.alias", O_RDONLY) = 4
open("/usr/lib/X11/locale/locale.dir", O_RDONLY) = 4 
open("/usr/lib/X11/locale/C/XLC_LOCALE", O_RDONLY) = 4


Man sieht: Er findet zuerst die Locale und auch Dinge wie LC_MESSAGES, aber dann liest er mehrfach das locale.alias und locale.dir File von X11, und findet dort scheinbar nicht was er sucht.

Obwohl es drin steht - zumindest das, was ich weiter oben schrieb.

Hat irgend jemand einen Tipp, was wo man bei X noch etwas umstellen muss, wenn man eine eigene Locale installiert hat?

Ich bin inzwischen ziemlich ratlos, und durch die länglichen Quelltexte von X möchte ich mich eher ungerne durchackern...
Back to top
View user's profile Send private message
spirou
Apprentice
Apprentice


Joined: 26 Apr 2004
Posts: 157
Location: Landshut

PostPosted: Tue Aug 08, 2006 1:05 pm    Post subject: Reply with quote

Ich hab zwar keine Ahnung, aber könnte es helfen, X nochmal zu kompilieren?

Grüßle
Spirou :D
_________________
Ich mache keine Voraussagen und werde das niemals tun.
Back to top
View user's profile Send private message
Guenther Brunthaler
Apprentice
Apprentice


Joined: 22 Jul 2006
Posts: 219
Location: Vienna

PostPosted: Wed Aug 09, 2006 7:30 pm    Post subject: Ich habe das Problem jetzt eingegrenzt Reply with quote

Im Source-Code der Xt-Library fand ich schließlich die Stelle, wo die komische Meldung ausgegeben wird.

Und zwar geschieht dies immer dann, wenn die Funktion XSupportsLocale() zurück gibt, dass X11 die aktuelle Locale nicht unterstützen würde.

Ich habe mir inzwischen auch das Xlib Manual und X11 Development Tutorial besorgt, und da steht es auch genau so drin: Eine internationalisierte X-Anwendung soll zuerst mit setlocale die Locale für normale (nicht-X) Programme setzen; das funktioniert in meinem Fall auch noch.

Doch dann soll das X-Programm die eben erwähnte Funktion XSupportsLocale aufrufen und prüfen ob Xlib die soeben gesetzte Locale auch unterstüzt.

Soweit, so schön.

Aber kein Wort, was man machen soll, wenn XSupportsLocale behauptet dass es eine Locale nicht unterstützt!

Da muss man doch etwas dagegen machen können!
Back to top
View user's profile Send private message
Guenther Brunthaler
Apprentice
Apprentice


Joined: 22 Jul 2006
Posts: 219
Location: Vienna

PostPosted: Wed Aug 09, 2006 7:56 pm    Post subject: Ich habe einen neuen Thread zum Thema erzeugt Reply with quote

https://forums.gentoo.org/viewtopic-p-3502489.html#3502489
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum