Hi Leute,
offenbar funktioniert die Lokalisierung nicht (mehr ?) so wie sie sollte und wie sie auch im Wiki beschrieben ist.
Testscenario ist folgendes Skript:
1 2 3 4 5 6 7 8 9 10 | #!/bin/bash export TEXTDOMAINDIR=~/bin export TEXTDOMAIN=test_loco echo $"You should try it" gettext -s $"You should try it" echo . locale env | egrep "TEXT|LC|LANG" |
mit dem zugehörigen LC_MESSAGES-Bäumchen:
track@lucid:~$ ls -1 ~/bin/*/*/ /home/track/bin/de/LC_MESSAGES/: test_loco.mo test_loco.po /home/track/bin/nl/LC_MESSAGES/: test_loco.mo test_loco.po
Der Export der $"- Texte mit
bash --dump-po-strings
funktioniert einwandfrei.Das kopieren der test_loco.pot-Datei an die gewünschten Stellen als test_loco.po im Bäumchen
und anschließend das Eintragen der Übersetzungen auch. (ich habe sogar poedit benutzt, aber da reicht jeder Editor)Das übersetzen von test_loco.po in das Maschinenformat test_loco.mo mit
msgfmt -o
war auch kein Problem.Natürlich stehen die nötigen TEXTDOMAIN- Einträge im Skript. (s.o.)
Jetzt sollte der Text $"..." in übersetzter Form ausgegeben werden. Tut er aber nicht.
Zur Probe teste ich zusätzlich gettext durch ausdrücklichen Aufruf. Das funktioniert:
track@lucid:~$ LANG=nl_NL.utf-8 ./test_loco You should try it Je moet het soms proberen . LANG=nl_NL.utf-8 LC_CTYPE="nl_NL.utf-8" LC_NUMERIC="nl_NL.utf-8" LC_TIME="nl_NL.utf-8" LC_COLLATE="nl_NL.utf-8" LC_MONETARY="nl_NL.utf-8" LC_MESSAGES="nl_NL.utf-8" LC_PAPER="nl_NL.utf-8" LC_NAME="nl_NL.utf-8" LC_ADDRESS="nl_NL.utf-8" LC_TELEPHONE="nl_NL.utf-8" LC_MEASUREMENT="nl_NL.utf-8" LC_IDENTIFICATION="nl_NL.utf-8" LC_ALL= LANG=nl_NL.utf-8 GDM_LANG=de_DE.utf8 TEXTDOMAIN=test_loco TEXTDOMAINDIR=/home/track/bin
Also liegt das Problem ganz offensichtlich darin, dass bash beim $"Loco-String" nicht (mehr ?) den gettext automatisch aufruft.
Frage an alle:
Könnt Ihr das Problem auf Eurem System (auch unter anderen Versionen oder Distributionen) nachvollziehen, oder hat nur mein System eine Macke ?Frage an Leute mit etwas Erfahrung;
Hat sich am System etwas geändert ? - in der Richtung deutet der Schluss in Greg's Wiki "Localization" und dem "New ABS appendix showing rubbish", der es mit wilden Workarounds versucht. Weiß dazu irgend jemand etwas genaueres ?
Im Anhang habe ich die deutsche Lokalisierungsdatei ~/bin/de/LC_MESSAGES/test_loco.mo beigefügt.
Für Euren Test müsst Ihr sie an genau diesen Ort kopieren und das Skript oben "ausführbar" machten.
Dann reicht (bei deutscher Lokjalisierung) der Aufruf im Terminal:
./test_loco
Lasst Ihr mich Euer Ergebnis wissen ?
Danke !
track
Edit:
Wieso wird der Dateianhang hier automatisch umbenannt ? - Das ist Mist. → bitte korrigiert nach dem herunterladen den Namen !