Assignation du langage dans la balise html

De base, symfony ne fourni pas une fonction de récupération du langage de l’interface utilisateur mais seulement la culture. Dans le layout par défaut, vous trouvez cette balise:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

Sur un site multilingue, cette information est très importante pour les robots de recherche. Elle permet de classer son contenu selon la langue affichée. Dans mon cas, j’utilise fr_CH comme culture par défaut et comme j’aimerai garder uniquement les deux premiers caractères, j’ai inséré une fonction dans la classe myUser.class.php se trouvant dans le dossier lib de l’application:

class myUser extends sfBasicSecurityUser
{
  ... 
  public function getLanguage()
  {
    $result = explode('_', $this->getCulture());
    return $result[0];
  }
  ...
}

Ensuite, il suffit de personnaliser la balise html avec la fonction ci-dessus:

<html xmlns="http://www.w3.org/1999/xhtml"
      xml:lang="<?php echo $sf_user->getLanguage(); ?>"
      lang="<?php echo $sf_user->getLanguage(); ?>">

J’espère que cette petite astuce vous servira…

Share

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *