Frage zu gettext

Plattformunabhängige GUIs mit wxWidgets.
Antworten
cos4
User
Beiträge: 23
Registriert: Freitag 30. November 2007, 21:17

Ich habe gerade begonnen ein Pythonprojekt(mit wxPython) zu organisieren und schreiben(ist mein erstes Pythonprojekt). Um mir unnötige Arbeit hinterher zu ersparen wollte ich gettext direkt implementieren. Allerdings bin ich etwas verwirrt von den verschiedenen Dokumentationen, wie man so etwas angehen sollte. So fand ich im wxPython wiki z.B. diesen Artikel, darunter aber einen Hinweis auf die wx.GetTranslation Methode(aus deren Dokumentation ich nicht schlau werde). Auf eine wiederum andere Beschreibung wurde ich im irc verwiesen(die mich überhaupt erst zu gettext geführt hat) link.

Also mir ist klar, dass ich die Strings in der Form _("string") schreibe und anschließend mit gettext oder anderen Tools erst eine .pot Datei erstelle, diese übersetze(als .po speichere) und dann als .mo kompiliere.
Aber was muss ich vorher noch in Python schreiben?

Achja das Programm ist für Linux gedacht, es sollte also nach Möglichkeit die in den locales festgelegte Sprache verwendet werden.

ps:Ich habe es hier gepostet, da es ja wohl auch wxPython Methoden dafür gibt und die verlinkten Wiki Artikel aus dem wxPython wiki stammen, sry falls es in ein anderes Unterforum gehört.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo cos4!

Willkommen im Python-Forum!

http://www.python-forum.de/topic-10711.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
cos4
User
Beiträge: 23
Registriert: Freitag 30. November 2007, 21:17

Danke! Hatte zwar gesucht, den Beitrag aber net gefunden.

Achja den encoding cookie muss ich in jeder Datei setzen, sowas wie wx.SetDefaultPyEncoding("utf-8") aber nur einmal oder?

Und die im Artikel beschriebene Methode:

Code: Alles auswählen

_ = wx.GetTranslation
führt bei mir zu dem Fehler:
NameError: global name '_' is not defined
mit der im Wiki beschriebenen Variante

Code: Alles auswählen

import __builtin__
__builtin__.__dict__['_'] = wx.GetTranslation
klappts.
Antworten