Uso UTF-8 nel mio editor, quindi tutte le stringhe visualizzate qui sono UTF-8 nel file.Errore UTF-8 con Python e gettext
Ho uno script python come questo:
# -*- coding: utf-8 -*-
...
parser = optparse.OptionParser(
description=_('automates the dice rolling in the classic game "risk"'),
usage=_("usage: %prog attacking defending"))
Poi ho usato xgettext per ottenere tutto e ottenuto un file pot che può essere riassunta in:
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: auto_dice.py:16
msgid "automates the dice rolling in the classic game \"risk\""
msgstr ""
Dopo di che, msginit ho usato per ottenere un de.po
, che ho riempito in questo modo:
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: auto_dice.py:16
msgid "automates the dice rolling in the classic game \"risk\""
msgstr "automatisiert das Würfeln bei \"Risiko\""
Esecuzione del script, ottengo il seguente errore:
File "/usr/lib/python2.6/optparse.py", line 1664, in print_help
file.write(self.format_help().encode(encoding, "replace"))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 60: ordinal not in range(128)
Come posso risolvere il problema?
Qual è il tipo di '_ (" utilizzo:% prog che attacca la difesa ")'? cioè cosa significa 'print type (_ (" usage:% prog attacking difending "))' stampa? – Mikel