Les Crash-Devs d'un Passionné

Gérer votre site multi langues avec Drupal 8

/Catégorie/php

Temps de lecture : 5 minutes

Dans leur nouvelle mouture Drupal, a injecté la gestion multi-langues dans leur ADN. Cela est rendu très pratique car juste après une nouvelle installation tout est disponible pour le faire. Nous allons voir maintenant comment le mettre en place.

Lors de la rédaction de ce tuto, la dernière version de Drupal était 8.0.0-rc3.

Commencez par installer les modules, en vous rendant dans Extend dans la partie Multilingual

  • Language
  • Content Translation
extend.png

Puis allez dans Manage / Regional and Language / Languages

configuration_modules.png

sous l'onglet List pour ajouter les langues voulues

add_language_french.png

Rendez vous dans l'onglet Detection and selection. Et en face du mode de détection URL, cliquez sur Configure

detection_selection.png

Et dans cette page vous pouvez choisir entre un sous domaine ou un préfixe dans l'url pour chaque langue précédemment configurées.

Mais quel choix faire ?
Google n'a pas de préférence concernant la détection de la langue puisqu'il regarde le contenu pour la connaitre.
Il est juste important que le contenu soit unique par URL (donc par texte traduit).
Sur le site de Google vous trouverez des avantages et inconvénients des 2 solutions :

https://support.google.com/webmasters/answer/182192?hl=en

Vous allez maintenant definir la langue par défaut du site et les éléments à traduire.

Allez dans Configuration / Content language and translation

configuration_content.png

Cliquez sur Content (et d'autres élements si voulu)

configuration_content_link.png

En face du type de contenu à traduire cliquez sur Translatable.

Changez aussi la langue par défaut, ici Français.

Et n'oubliez pas de cocher la case Show language selector on create and edit pages

configuration_content_translatable.png

Nous allons maintenant créer du contenu dans Content et créer un article

content_article_fr.png

Retournez dans la page créée et choisissez comme action Traduire

content_article_translate.png

Vous arrivez sur une page où sont listé les langues disponibles.
Cliquez sur Add en face de la langue voulue

content_article_translate_lang

Vous arrivez sur la page de contenu à traduire

content_article_en.png

On va ensuite mettre en place le système de changement de langue.
Pour cela allez dans Structure / Block layout, et dans Sidebar first cliquez sur Place block

add_menu.png

Choisissez le bloc Language selection et dans la Language selection choisir l'anglais et le français

add_menu_with_lang

Et voilà Drupal 8 gère automatiquement votre site multilangue sans aucun module supplémentaire, de manière totalement natif. Plutôt cool !!

drupal_site_with_menu_lang.png