Unfortunately for many parameters (such as locale, pythonpath, logging level) python relies too much on the os, therefore they are not per thread but per process. This is a problem for web apps. This is a major design flaw in my view.
Massimo On Aug 14, 7:19 pm, Francisco <[email protected]> wrote: > Well after reading more and more about locale I realize that it's kind > of very problematic to set the locale and encoding the right way while > not breaking something else. > > So I decided to use a dirty hack to get the expected result. I wrote a > very simple function inside my view that would turn a date object into > a string with the date just as I wanted, just in case someone might > find it useful: > > {{def str_date(date): > w=dict([(0,'Lunes'),(1,'Martes'),(2,'Miércoles'),(3,'Jueves'), > (4,'Viernes'),(5,'Sábado'),(6,'Domingo')]) > m=dict([(1,'Enero'),(2,'Febrero'),(3,'Marzo'),(4,'Abril'),(5,'Mayo'), > (6,'Junio'), > (7,'Julio'),(8,'Agosto'),(9,'Septiembre'),(10,'Octubre'), > (11,'Noviembre'),(12,'Diciembre')]) > return w[date.weekday()]+" "+str(date.day)+" de "+m[date.month]+" "+str > (date.year)}} > > And I placed this code inside my layout.html file so it can be used > from any page (that extends the layout). > > About the question you made, I read something about django that > mentions they have their own locale middleware, and it allows to set > locale on a per user basis > (django.middleware.locale.LocaleMiddleware). > > Thankyou for all the help. > > On 14 ago, 16:23, Yarko Tymciurak <[email protected]> wrote: > > > According tohttp://docs.python.org/library/i18n.html > > > it's even worse than that, saying some implementations core-dump on changing > > locale... > > > How do other web frameworks deal with this? As it is, it seems that it's up > > to the > > applicatiion. > > > On Fri, Aug 14, 2009 at 2:26 PM, mdipierro <[email protected]> wrote: > > > > This does not solve the problem the in Python local is set per process > > > and not per-thread. Am I wrong? > > > > Massimo > > > > On Aug 14, 1:51 pm, Yarko Tymciurak <[email protected]> wrote: > > > >http://www.w3.org/International/questions/qa-accept-lang-locales > > > > > Discusses a starting point, while (application responsibility) warning > > > > to > > > be > > > > sure to let the user set their locale. > > > > > I think, Francisco, this is your answer. You can find what you need to > > > get > > > > started in: > > > > > request.env.http_accept_language > > > > > and, as per article above, you should provide the session a way to > > > > modify > > > > this if used as a default starting setting. > > > > > Hope that is helpful. > > > > > Regards, > > > > - Yarko > > > > > On Fri, Aug 14, 2009 at 1:42 PM, mdipierro <[email protected]> > > > wrote: > > > > > > If you find a way let me know. > > > > > > On Aug 14, 1:37 pm, Yarko Tymciurak <[email protected]> wrote: > > > > > > it would seem there should be some way to set it based on client, > > > > > > per > > > > > > session... > > > > > > > On Fri, Aug 14, 2009 at 1:32 PM, mdipierro <[email protected]> > > > > > wrote: > > > > > > > > This is a problem. > > > > > > > > You must set the locale: > > > > > > >http://docs.python.org/library/locale.html > > > > > > > > the problem is that you cannot setting the locale is not thread > > > safe. > > > > > > > It does not break your app but once you set it it affects all the > > > > > > > apps. > > > > > > > > Massimo > > > > > > > > On Aug 14, 1:06 pm, Francisco <[email protected]> > > > wrote: > > > > > > > > Hello. > > > > > > > > > Thanks for the advise. I have tried what you said and now my > > > > > > > > application is in Spanish, but weekdays and month names are > > > > > > > > still > > > > > > > > displayed in English. When I use the following code from within > > > my > > > > > > > > view: > > > > > > > > > {{=consulta.fecha_consulta.strftime("%A %d %B %Y")}} > > > > > > > > > the date is displayed as "Wednesday 12 de August 2009" > > > > > > > > > Any other suggestions? > > > > > > > > > Thanks a lot. > > > > > > > > > On 13 ago, 02:12, mdipierro <[email protected]> wrote: > > > > > > > > > > You do not need to do that. > > > > > > > > > > Just use the EDIT page, create a language file for mexican and > > > > > > > > > translate the format strings. This will be taken care of > > > > > automatically > > > > > > > > > everywhere. > > > > > > > > > > On Aug 12, 3:06 pm, Francisco <[email protected]> > > > > > wrote: > > > > > > > > > > > Hello everyone. > > > > > > > > > > > I have just started learning web2py. It's really great! > > > > > > > > > > Now the question I have is about the locale. > > > > > > > > > > I'm from Mexico so my applications must be in Spanish. In > > > some > > > > > part > > > > > > > of > > > > > > > > > > the application I want to get a date doing something like > > > this > > > > > from > > > > > > > > > > within a view: > > > > > > > > > > > {{=consulta.fecha_consulta.strftime("%A %d %B %Y")}} > > > > > > > > > > > and it works, but the date is displayed in English. In what > > > way > > > > > can I > > > > > > > > > > set the locale for the date to be displayed in Spanish? > > > > > > > > > > > Thanks for the help. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---

