xml:lang et eZ publish
Ca n'aura pas échappé aux 2~3 potes que j'embête à longueur de temps à ce sujet : je fais mon site en xhtml+rdfa. A ce titre, les pages sont servies en tant que fichiers XML et parsés en tant que tels par les navigateurs dignes de ce nom comme Firefox, et Lynx ( celui en console :D )
Il y a donc des passages obligés si on veut faire du bon boulot. Comme, par exemple, la définition de la langue par défaut. Or, petit problème : fre-FR ou eng-GB c'est pas valide! A la poubelle donc le traditionnel $site.http_equiv.Content-Language mais heureusement il y a... (non.. pas Findus!) la fonction fetch!
Si on regarde la documentation de plus près, on pourra tomber sur cette petite fonction bien sympathique : fetch('content','locale')
Cette fonction retourne un objet de type ezlocale relatif à la page. Ce dernier contient moults attributs dont la liste exhaustive est disponible dans la documentation.
Celui qui nous intéresse particulièrement, c'est l'attribut language_code. A partir de là, rien de bien sorcier, pour afficher la langue, le code suivant suffit :
{def $ma_locale = fetch( 'content', 'locale' )}
{$ma_locale.language_code|wash}On pourra donc insérer sans mauvaise conscience le code suivant en tête de notre fichier pagelayout.tpl et ainsi espérer atteindre la validation tant convoitée du WCAG 2.0 :
{def $locale = fetch('content','locale')}
<html xmlns="http://www.w3.org/1999/xhtml" version="XHTML+RDFa 1.0" xml:lang="{$locale.language_code|wash}" >
lundi 09 août 2010
