I18n issue with optik
Steven Bethard
steven.bethard at gmail.com
Sun Apr 1 12:21:40 EDT 2007
Thorsten Kampe wrote:
> * Steven Bethard (Sat, 31 Mar 2007 20:08:45 -0600)
>> Thorsten Kampe wrote:
>>> I've written a script which uses Optik/Optparse to display the
>>> options (which works fine). The text for the help message is localised
>>> (with german umlauts) and when I execute the script with the localised
>>> environment variable set, I get this traceback[1]. The interesting
>>> thing is that the localised optparse messages from displays fine -
>>> it's only my localisation that errors.
>>>
>>> From my understanding, my script doesn't put out anything, it's
>>> optik/optparse who does that. My po file is directly copied from the
>>> optik po file (who displays fine) and modified so the po file should
>>> be fine, too.
>>>
>>> What can I do to troubleshoot whether the culprit is my script, optik
>>> or gettext?
>>>
>>> Would it make sense to post the script and the mo or po files?
>> Yes, probably. Though if you can reduce it to the simplest test case
>> that produces the error, it'll increase your chances of having someone
>> look at it.
>
> The most simple test.py is:
>
> ###
> #! /usr/bin/env python
>
> import gettext, \
> os, \
> sys
>
> gettext.textdomain('optparse')
> gettext.install('test')
>
> from optparse import OptionParser, \
> OptionGroup
>
> cmdlineparser = OptionParser(description = _('THIS SOFTWARE COMES
> WITHOUT WARRANTY, LIABILITY OR SUPPORT!'))
>
> options, args = cmdlineparser.parse_args()
> ###
>
> When I run LANGUAGE=de ./test.py --help I get the error.
>
> ### This is the test.de.po file
> # Copyright (C) 2006 Thorsten Kampe
> # Thorsten Kampe <thorsten at thorstenkampe.de>, 2006
>
> msgid ""
> msgstr ""
>
> "Project-Id-Version: Template 1.0\n"
> "POT-Creation-Date: Tue Sep 7 22:20:34 2004\n"
> "PO-Revision-Date: 2005-07-03 16:47+0200\n"
> "Last-Translator: Thorsten Kampe <thorsten at thorstenkampe.de>\n"
> "Language-Team: Thorsten Kampe <thorsten at thorstenkampe.de>\n"
> "MIME-Version: 1.0\n"
> "Content-Type: text/plain; charset=ISO-8859-15\n"
> "Content-Transfer-Encoding: 8-bit\n"
> "Generated-By: pygettext.py 1.5\n"
>
> msgid "THIS SOFTWARE COMES WITHOUT WARRANTY, LIABILITY OR SUPPORT!"
> msgstr "DIESES PROGRAMM HAT WEDER GEWÄHRLEISTUNG, HAFTUNG NOCH
> UNTERSTÜTZUNG!"
> ###
>
> The localisation now produces an error in the localised optik files,
> too.
>
> Under Windows I get " File "G:\program files\python\lib\encodings
> \cp1252.py", line 12, in encode
> return codecs.charmap_encode(input,errors,encoding_table)"
I'm not very experienced with internationalization, but if you change::
gettext.install('test')
to::
gettext.install('test', unicode=True)
what happens?
STeVe
More information about the Python-list
mailing list