Publié le

Options avancées pour le sélecteur de langue de Drupal

Même si le sélecteur de langue par défaut de Drupal a le mérite d'exister, ses options sont très limitées par défaut et il n'est pas customisable facilement sans utiliser de hooks ou d'overrides de templates compliqués.

Le module Language Switcher Extended

Un module à été créé pour répondre à cette problématique, le module Language Switcher Extended. Grâce à lui, de nouvelles options font leur apparition via son onglet de configuration une fois celui-ci installé.

Afficher les codes de langues à la place du nom complet

Il est courant de devoir afficher les codes de langues à 2 lettres (ISO 639-1) à la place de leur nom complet pour simplifier l'affichage du sélecteur de langue et que celui-ci prenne moins de place dans le menu.

Pour cela rien de plus simple. Après installation du module, rendez-vous sur sa page d'administration /admin/config/regional/language/language-switcher-extended puis cochez la case Show language code.

Les langues s'afficheront désormais sous leur forme ISO 639-1 partout où est placé le sélecteur de langue.

Désactiver le lien vers la langue actuelle

Changement plus subtil que le précédent, il est également possible de désactiver le lien de la langue actuelle dans le sélecteur de langue. Comme précédemment, il suffit de se rendre sur la page d'administration du module /admin/config/regional/language/language-switcher-extended puis de choisir l'option Display the language without link du champ Current language mode.

Rediriger vers la page d'accueil en l'absence de contenu traduit

Enfin, il est également possible de changer le comportement des liens du sélecteur de langue lorsque le contenu traduit n'existe pas. Dans mon cas, j'ai choisi l'option Link to the frontpage du champ Untranslated Handler pour rediriger les liens non traduits vers la page d'accueil.