[Zope] Setting the accept-language header from zpt fails

Josef Meile jmeile at hotmail.com
Tue Sep 7 12:25:16 EDT 2004


Hi,

I'm trying to set the accept-language from zpt in order to force
PlacelessTranslationService to use other language than the one set on my
browser. I have an index_html template with I call like this:

http://myurl/index_html?lang=de

Theorically the template should check if lang exist, then set the
accept-language header, but it doesn't work. It seems like either
PlacelessTranslationService takes always the 'accept-language' from the
browser, or I'm doing something else wrong. Here is the code:

<div tal:define="global lang python:request.get('lang',0)"
      tal:omit-tag=""></div>
<div tal:condition="lang" tal:omit-tag=""
      tal:define="dummy 
python:request.RESPONSE.setHeader('Accept-Language',lang)"></div>
<html>
   <body>
     <h4 i18n:translate="" i18n:domain="JMColorPicker">Please choose a 
color</h4>
     Language: <div tal:replace="lang"></div>
   </body>
</html>

When calling the template with the "lang" parameter, the language will 
be printed correctly (ie: it will print de), but the message "Please 
choose a color" will be translated to the language of my browser (ie: 
es) and not to the language specified by "lang" (ie: de).

I even added:
<head>
   <meta tal:condition="lang" http-equiv="Accept-Language" content="en"
         tal:attributes="content lang">
</head>

But it didn't work either.

Am I doing something wrong? Or is this not possible with 
PlacelessTranslationService?

Thanks in advanced,
Josef


More information about the Zope mailing list