"Internationalisierung" von Python-Programmen/Modu

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi xturbo77,

Du hast wohl vergessen in poEdit die Zeichenkodierung zu setzten? Schau mal ins *.po dort sollten zwei Zeilen stehen

Code: Alles auswählen

"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
ändere diese in

Code: Alles auswählen

"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
oder ergänze die Eintragungen mit poEdit und lass ein neues *.mo erzeugen.


Gruß

Dookie
xturbo77
User
Beiträge: 39
Registriert: Montag 9. September 2002, 20:05
Kontaktdaten:

Tausenddank.

PoEdit hab ich garnicht verwendet, wollte einfach mal kurz die Mehrsprachentauglichkeit von Python testen :) klappt echt super!
sacro_thaan
User
Beiträge: 12
Registriert: Montag 23. Januar 2006, 03:21

Hallo,

da ich auch gerade am arbeiten mit gettext bin, habe ich mal einen alten Threat rausgekramt, weil ich noch ein Problem habe.

Das oben beschriebene Problem mit charset ist durch den Tipp gelöst, aber jetzt habe ich folgenden Fehler:

UnicodeDecodeError: 'utf8' codec can't decode bytes in position 81-83: invalid data

mein Header 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: 2006-05-19 04:08+Westeuropäische Normalzeit\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=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"

Woran liegt das jetzt? Umlaute im Text können es wohl nicht sein, da es auch mit der englischen Sprach-Datei passiert.

Der Code zum Einbinden von gettext sieht so aus:

Code: Alles auswählen

  gettext.install('App', './locale')
  presLan_en = gettext.translation('App', './locale', anguages=['en'])
  presLan_de = gettext.translation('App', './locale', languages=['de']) 
  self.presLan_en.install()
Gruß

Till
sacro_thaan
User
Beiträge: 12
Registriert: Montag 23. Januar 2006, 03:21

OK, hat sich erledigt, habe den Trick gefunden. iso-8859-1-codierung heißt das Zauberwort....

Sorry, hab es erst gefunden, nachdem ich gefragt habe

:oops:

Gruß

Till
Antworten