Thanks for the debugging. It's what I thought: the .po file you're using (created as a .pot by zgettext) has an incorrect line like: Content-Type: text/plain; charset=CHARSET but CHARSET here should be the charset of the file, for instance iso-8859-1, or maybe utf-8 or any other valid charset. The .pot was a template, that must be edited to fill-in this kind of info that it can't guess, to give a .po file. Florent On Tue, 2003-01-28 at 19:13, Damon Butler wrote:
On Tue, 2003-01-28 at 07:58, Florent Guillaume wrote:
Apparently Localizer (in fact, python gettext module) didn't correctly parse the charset of the .po files... Are they standard .po files? There should be a Content-Type: xxx; charset=foo header in them.
If you could add debug statements to /local/lib/python2.1/gettext.py to track this down it would be helpful.
The method in question is barebones:
----- def ugettext(self, message): tmsg = self._catalog.get(message, message) return unicode(tmsg, self._charset) -----
The line raising the error I noted is the 'return' statement.
With only two variables in question, I inserted a 'raise Exception' statement just prior to the problematic one containing the 'unicode' function to smoke out what their values were:
----- raise Exception, "tmsg: %s, self._charset: %s" % (tmsg, self._charset) -----
Here's what I got:
----- Error Value: tmsg: Add ZNuxDocument, self._charset: CHARSET -----
The problem appears to be with 'CHARSET' as a value. Looks like it ought to be the result of an environmental variable to me, but I don't see where in the code it gets set, except via the '_parse' method of the GNUTranslations class defined directly above this spot in the gettext.py code. The relevant section of that method:
----- [...] # See if we're looking at GNU .mo conventions for metadata if mlen == 0 and tmsg.lower().startswith('project-id-version:'): # Catalog description for item in tmsg.split('\n'): item = item.strip() if not item: continue k, v = item.split(':', 1) k = k.strip().lower() v = v.strip() self._info[k] = v if k == 'content-type': self._charset = v.split('charset=')[1] [...] -----
Any idea what's going on? I don't really know where to look next.
--Damon
========================
Florent
In article <1043428979.268.35.camel@kermit> you write:
On FreeBSD 4.7 I'm running Zope 2.5.1 that I've patched with all the Unicode diffs from http://www.zope.org/Members/efge/i18n/Unicode-2.5.1. I've also installed Localizer 1.0.0. All in an attempt to get NuxDocument 1.1alpha functional. (I've installed all the necessary converter apps as well: wvWare, etc.) I *think* I've installed NuxDocument correctly, but the very first instruction is confusing:
"Install the product in Products (NOT lib/python/Products!). The ZNuxDocument product should appear in the ZMI."
Well, the *only* "Products" directory in existence on my system is lib/python/Products. So that's where I stuck it. Now I see a "NuxDocument" available as something I can Add in the ZMI (not "ZNuxDocument").
Problem is, whenever I try to Add a NuxDocument, I get the following Traceback from Localizer:
=-=-=-=-=-=-=-=-=-=
Error Type: LookupError Error Value: unknown encoding Traceback (innermost last): File /usr/local/www/Zope/lib/python/ZPublisher/Publish.py, line 150, in publish_module File /usr/local/www/Zope/lib/python/Products/Localizer/__init__.py, line 58, in new_publish File /usr/local/www/Zope/lib/python/ZPublisher/Publish.py, line 114, in publish File /usr/local/www/Zope/lib/python/Zope/__init__.py, line 159, in zpublisher_exception_hook File /usr/local/www/Zope/lib/python/ZPublisher/Publish.py, line 98, in publish File /usr/local/www/Zope/lib/python/ZPublisher/mapply.py, line 88, in mapply (Object: addForm) File /usr/local/www/Zope/lib/python/ZPublisher/Publish.py, line 39, in call_object (Object: addForm) File /usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py, line 252, in __call__ (Object: addForm) File /usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py, line 283, in _bindAndExec (Object: addForm) File /usr/local/www/Zope/lib/python/Products/Localizer/LocalFiles.py, line 100, in _exec (Object: addForm) File /usr/local/www/Zope/lib/python/App/special_dtml.py, line 172, in _exec (Object: addForm) File /usr/local/www/Zope/lib/python/DocumentTemplate/DT_Util.py, line 179, in eval (Object: manage_form_title(this(), _, form_title=gettext('Add ZNuxDocument'))) (Info: this) File <string>, line 0, in ? File /usr/local/www/Zope/lib/python/Products/Localizer/LocalFiles.py, line 82, in gettext (Object: addForm) File /usr/local/lib/python2.1/gettext.py, line 195, in ugettext LookupError: (see above)
-- Florent Guillaume, Nuxeo (Paris, France) +33 1 40 33 79 87 http://nuxeo.com mailto:fg@nuxeo.com