[Zope] NuxDocument Nonfunctional

Florent Guillaume fg@nuxeo.com
28 Jan 2003 19:45:09 +0100


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