Estic fent la nove web de l’empresa i aquesta vegada la faré multiidioma.
La web esta feta bàsicament de pàgines estàtiques i per a fer la part de multiidioma faig servir apache multiviews.
Per a fer-ho servir només cal posar
Options Indexes MultiViews
a un fitxer .htaccess o bé al fitxer de configuració del apache.
Després ja puc crear fitxers acabats amb ca per catala en per angles etc…
Amb la opció ForceLanguagePriority es pot decidir quin es el idioma per defecte quan no hi ha un pagina del idioma del que es connecta.
Això està molt bé, però no permet que es pugui canviar el idioma des del navegador. Per a poder canviar-lo des del navegador, s’utilitza una cookie i la opció setenvif.
Per una banda s’ha de generar una cookie al client per a marcar l’idioma. Això es pot fer amb javascript.
Al inici del fitxer:
<script>
function setCookie(c_name,value,expiredays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ “=” +escape(value)+
((expiredays==null) ? “” : “;expires=”+exdate.toGMTString());
}
</script>
I després un link :
<div id=”lang”>
<a href=”" onclick=”setCookie(‘language’,'ca’,10); return true;”>Català</a> |
<a href=”" onclick=”setCookie(‘language’,'en’,10); return true;”>English</a>
</div>
Després a la configuració del apache o al .htaccess.
SetEnvIf Cookie “language=([a-z-]+)” prefer-language=$1 Header append Vary cookie
Així la pagina web selecciona automàticament el idioma del navegador i a més a més permet seleccionar el idioma manualment. Ara només falta acabar les traduccions per a penjar la pàgina.