Définissez une langue système pour traduire proprement Drupal

L’un des avantages majeurs à utiliser Drupal est de bénéficier d’un système de traduction avancé. En effet, avec l’ajout de quelques modules il devient facile de traduire contenus et interfaces. La langue par défaut que vous avez choisie lors de l’installation servira alors de base lors de la création des différentes entités sur votre site.

Néanmoins il existe une faiblesse dans le système. Drupal n’attribue pas de nom machine pour une chaine de caractères disponible pour la traduction et ne fait que faire le mapping entre la valeur de la chaine et de potentielles traductions. Cela a pour conséquence que lorsque vous changez la valeur de la chaine de caractères, Drupal n’est plus capable de faire le lien et votre traduction ne sert plus à rien.

Pour éviter cela, l’idée est d’installer votre site en Anglais et de se servir de cette langue comme langue système, puis d’ajouter d’autres langues pour traduire votre site. Ainsi si vous avez besoin de traduire votre site en Anglais, vous aurez deux langues Anglaises sur votre site, une pour le système et une pour vos utilisateurs.

Il m’arrive souvent, pendant la phase de développement d’un site, que le wording ne soit pas validé. Le choix cornélien de devoir appeler un bouton « Acheter » ou « sors ta CB » est long. L’autre avantage d’utiliser une langue système est que vous pouvez vous passer de cela, plus besoin d’attendre le label parfait pour CTA. Vous aurez simplement à traduire cette valeur lors de la phase de traduction.

Voici donc en 8 étapes comment configurer l’anglais par défaut comme langue système et ajouter d’autres langues (même de l’Anglais) comme traduction.

  1. Rendez-vous sur la page des modules et activez le module Locale.

  2. Une fois installé, rendez-vous sur la page d’administration des langues (/admin/config/regional/language).

  3. Cliquez sur le lien edit pour la langue Anglais. Ajoutez un path prefix “en-sys” et sauvegardez. Cette langue nous servira de langue système

  4. Une fois redirigé sur l’interface d’administration des langues cliquez sur le lien en haut Add a language.

  5. Dépliez le fieldset Custom language (oui c’est bien caché) et renseignez la configuration suivante. Cette langue sera l’anglais qui sera affiché à vos visiteurs.

    • language name = English customized
    • Native language code = English
    • Path prefix = en
    • Direction = left to right
  6. Ajoutez la langue FR à la liste des langues. Dans le cas où le Français sera la langue par défaut de votre site vous pouvez supprimer le “path prefix” dans les options de configuration de la langue FR.

  7. Activez les langues “French” et “English customized”, désactivez la langue “English” par défaut et cochez la le Français comme langue par défaut.

  8. Rendez-vous sur la page de détection des langues (/admin/config/regional/language/configure) et activez le mode de détection par “url”.

A ce stade il ne vous reste alors plus qu’à traduire les éléments d’interfaces en Français et en Anglais.

L’intérêt de cette solution est de permettre à la fois de traduire l’anglais par défaut et de ne pas se préoccuper de la traduction pendant le développement.