Hi,
wie mach ich am leichtesten Mutlilanguage in mein Projekt.
Also in PHP würde ich einfach eine Datei mit Variablen laden das finde ich sehr komfortable und sehr leicht und wenn es auf diese weise in Python gehen würde würde ich mich freuen.
Also nen Ordner in meinem Projektordner namens locale und darin Unterordner mit den Iso Länderabkürzungen und darin eine oder mehrere Dateien mit den Sprachstrings.
vielen Dank für eure Hilfe.
mfg
wdsl
Multilanguage?
Schau mal in die Doku vom `gettext`-Modul in der Standardbibliothek.
Python handhabt "internationalization" wie die meisten anderen Open-Source-Programme.
Python handhabt "internationalization" wie die meisten anderen Open-Source-Programme.
hmm ich schnalls nicht!
Dann habe ich mit
Was mache ich falsch?
vielen Dank
wdsl
P.S. ich kann mir immernoch nicht vorstllen wie kompilierz das ist etwas auf 2,3,4... Sprachen zur Verfügung zu stellen. Man muss doch nur die Strings ersetzen.
Code: Alles auswählen
import gettext
gettext.install('test', localedir = '.', unicode = True)
_ = gettext.gettext
print _('Hello World')
mir eine messages.pot erstellen lassen. die schaut so aus:pygettext test.py
danach habe ich eine de.po datei erstellt die sieht so aus:# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2007-03-21 15:52+CET\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
"Generated-By: pygettext.py 1.5\n"
#: test.py:5
msgid "Hello World"
msgstr ""
anschließend habe ich mir aus der de.mo eine de.mo Datei machen lassen :# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2007-03-21 15:52+CET\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
"Generated-By: pygettext.py 1.5\n"
#: test.py:5
msgid "Hello World"
msgstr "Hallo blablub"
zu guter letzt habe ich das ganze in einen Ordner kopiertmsgfmt de.po -o de.mo
wenn ich es jetzt ausführe bekome ich allerdings nicht Hallo blablub sonder Hello World?./de/LC_MESSAGES/
Was mache ich falsch?
vielen Dank
wdsl
P.S. ich kann mir immernoch nicht vorstllen wie kompilierz das ist etwas auf 2,3,4... Sprachen zur Verfügung zu stellen. Man muss doch nur die Strings ersetzen.
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Offensichtlich weiß gettext nicht, das er die "de" Variante ausliefern soll... Ich hab selber noch nicht viel mit gettext gemacht... Orientiert es sich an den locales Einstellung? Hast du die locales auch auf de? Oder muß man gettext anders sagen, welche Sprache nun dran ist?
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi wdsl!
Ich weiß jetzt zwar nicht, warum dein Beispiel nicht funktioniert, aber hier findest du ein nützliches Tool zum Übersetzen deiner Anwendung: http://www.poedit.net/
mfg
Gerold
Ich weiß jetzt zwar nicht, warum dein Beispiel nicht funktioniert, aber hier findest du ein nützliches Tool zum Übersetzen deiner Anwendung: http://www.poedit.net/
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi wdsl!wdsl hat geschrieben:hmm ich schnalls nicht!
Code: Alles auswählen
_ = gettext.gettext
Nur so eine Vermutung. Kann es sein, dass oben gezeigte Zeile zu viel ist?
http://docs.python.org/lib/node740.html
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.