[Python-de] gettext

Marcus Habermehl bmh1980de at yahoo.de
Don Dez 16 21:31:19 CET 2004


Hi.

Am Donnerstag, den 16.12.2004, 19:49 +0100 schrieb Marek Kubica:
> > Ich wollte mich jetzt mal mit der Übersetzung von meinen
> > Python-Skripten beschäftigen.
> > 
> > Allerdings funktioniert das nicht so richtig. Mit der Fehlermeldung,
> > die ich von dem Modul gettext bekomme, kann ich aber auch nichts
> > anfangen.
> > 
> > Nach dem ich das Skript angepasst habe, hab ich eine pot-Datei
> > erzeugt.
> > 
> >     $ xgettext -o test.pot -L Python --from-code=Python test-de.py
> Ich habe gettext.py genutzt, das ist für Python am besten.

Blöde Frage: Wie? Habe jetzt doch noch (durch diesen Tipp mit einem
Python-Skript) noch das Skript pygettext.py gefunden. Mit dem klappt das
anscheinend weitaus besser, als mit xgettext.

> > Danach hab ich die deutsche Übersetzung wie folgt erstellt.
> > 
> >     $ msginit -l de_DE
> > 
> > Und zu guter Letzt die Datei de.po bearbeitet und nach
> > ./de/LC_MESSAGES verschoben.
> Dazu habe ich msgfmt.py benutzt
> 
> Ich habe dann die MO nach LC_MESSAGES verschoben.

So hab ich ich es jetzt auch gemacht.

> Code in meinem Python Script:
> import gettext
> try:
>     lang_de =gettext.translation('mathengine','locale',languages=['de'])
>     _ = lang_de.ugettext
> except:
>     def _(transstring):
>         """Dummy method, created and called when no locale is found.
>         Uses the fallback language (called C; means english) then."""
>         return transstring

Ich habe nur dieses in meinem Skript:

import gettext

gettext.install('test', localedir = '.', unicode = True)

print _('Hello World') # Nur mal ein dummes, aber bekanntes Beispiel

Jetzt funktioniert alles wunderprächtig. ;-)

Hier noch mal den Link, den ich gefunden habe.
http://docs.python.org/lib/node317.html

Für den Fall, dass mal jemand über dieses Thread stolpert. ;-)

Ich frage mich nur, warum ich den Link damals nicht gefunden habe.
Vielleicht deshalb.

"Release 2.4, documentation updated on 30 November 2004."