* 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 <[EMAIL PROTECTED]>, 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 <[EMAIL PROTECTED]>\n" "Language-Team: Thorsten Kampe <[EMAIL PROTECTED]>\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)" Is there something I have to do to put the terminal in "non-ascii output mode"? I tried ### #! /usr/bin/env python # -*- coding: ISO-8859-15 -*- print "DIESES PROGRAMM HAT WEDER GEWÄHRLEISTUNG, HAFTUNG NOCH UNTERSTÜTZUNG!" ### ...and this worked. That means that my terminal is willing to print, right?! > You could also try posting to the optik list: > http://lists.sourceforge.net/lists/listinfo/optik-users I already did this via Gmane (although the list seems pretty dead to me). Sourceforge seems to have a bigger problem as [1] and [2] error. Sorry for the confusion but this Unicode magic is far from being rational. I guess most people just don't get it... Thorsten [1] http://sourceforge.net/mailarchive/forum.php?forum=optik-users [2] https://lists.sourceforge.net/lists/listinfo -- http://mail.python.org/mailman/listinfo/python-list