[Python-de] i18n / Tkinter
"Martin v. Löwis"
martin at v.loewis.de
Son Jan 25 22:00:04 CET 2004
Olaf 'Rübezahl' Radicke wrote:
> Ich kann keine Beispiele finden und für die Doku ist
> mein Englisch zu schlecht.
Das einfachste Beispiel ist
# Python
import gettext
gettext.install("demoapp", localedir=".", unicode=True)
import Tkinter
t=Tkinter.Label(text=_("Hello, World"))
t.pack()
b=Tkinter.Button(text=_("Close"), command=t.tk.quit)
b.pack()
t.tk.mainloop()
Dies speichere man als a.py ab, und rufe
# Shell Command Line
xgettext a.py
auf. Daraus ergibt sich eine Datei messages.mo. Diese
ändere man ab in
# demoapp message file
#
msgid ""
msgstr ""
"Project-Id-Version: demoapp\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2004-01-25 21:50+0100\n"
"PO-Revision-Date: 2004-01-25 21:52+0100\n"
"Last-Translator: Martin v. Löwis <martin at v.loewis.de>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
#: a.py:5
msgid "Hello, World"
msgstr "Hallo, Welt"
#: a.py:7
msgid "Close"
msgstr "Ende"
Man rufe
# Shell Command Line
msgfmt messages.po
und schreibe das sich ergebende messages.mo unter
./de/LC_MESSAGES/demoapp.mo
ab. Danach rufe man
# Shell Command Line
python a.py
und betrachte die deutsche Ausgabe.
Wenn man mehrere Sprachen unterstützen will, muss man den
Übersetzern messages.po geben, und die Message-Dateien
kompilieren.
Ciao,
Martin