Accept-Language Issue

Cosimo Streppone cosimo at streppone.it
Fri Jul 2 07:59:32 CEST 2010


In data 02 luglio 2010 alle ore 00:37:41, Laurence Rowe <l at lrowe.co.uk> ha  
scritto:

> Check that you do have the comma in Plone's caching control panel. I can
> imagine it being an easy typo to make.
>
> There are many unique variations of Accept-Language headers, so be  
> careful.
> I've used this before in vcl_recv to normalise the incoming request:
>
>   # We only care about the language in the I18N_LANGUAGE cookie
>   if (req.http.Cookie ~ "(^|.*; )I18N_LANGUAGE=") {
>     set req.http.Accept-Language = regsub(req.http.Cookie, "(^|.*;
> )I18N_LANGUAGE=([^;]*)(; .*|$)", "\2");
>     # XXX need to work out the proper way to match " here, e.g. "en"
>     set req.http.Accept-Language = regsub(req.http.Accept-Language,
> "^.(.*).$", "\1");
>   } else {
>     set req.http.Accept-Language = "en";
>   }

This is fine, as long as you always have a cookie.
We weren't in this situation, and we wanted to honour Accept-Language
properly, so I wrote this VCL:

http://github.com/cosimo/varnish-accept-language/

-- 
Cosimo




More information about the varnish-misc mailing list