[Zope3-Users] Re: question about request.locale and creation time

Philipp von Weitershausen philipp at weitershausen.de
Sat Jan 13 16:16:18 EST 2007

Shailesh Kumar wrote:
> Hi,
> When I look at the Creation time and Modification time in any of the 
> container views, it shows me the UTC time.
> Looking at
> zope.app.container.browser.contents.py 
> <http://zope.app.container.browser.contents.py>: Line 174
> I found that:
>             formatter = self.request.locale.dates.getFormatter(
>                 'dateTime', 'short')
>             created = self.safe_getattr(dc, 'created', None)
>             if created is not None:
>                 info['created'] = formatter.format(created)
>             modified = self.safe_getattr(dc, 'modified', None)
>             if modified is not None:
>                 info['modified'] = formatter.format(modified)
> is being used to compute them.

No, the local formatter is used to *format* dates according to the 
current locale. 8th of March this year, for example would be "3/8/2007" 
in the U.S. English locale, but "08.03.2007" in the German locale.

> I am puzzled, how does the browser set its locale? I guess this must be 
> a very basic question. But I am not able to figure it out.

request.locale is set according to the most preferred language/locale 
returned by the IUserPreferredLanguages adapter for the request. The 
default adapter reads browser's the Accept-Language header. More 
advanced adapters could use cookies or something else that the user can 
influence though the website directly.

My book talks about this in detail: http://worldcookery.com

http://worldcookery.com -- Professional Zope documentation and training
2nd edition of Web Component Development with Zope 3 is now shipping!

More information about the Zope3-users mailing list