[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