Ce guide a pour but de présenter le fonctionnement du multilinguisme dans Drupal 7.
Les concepts
« L’Internationalization » permet la localisation, autrement dit, la traduction et l’adaptation, de n’importe quel élément constitutif d’un site Drupal (menu, block, …etc.).
Si un élément est associé à une langue : on parle alors d’élément « localisé ».
La « Localization » consiste à adapter un site internet à une certaine langue, incluant :
- La traduction des textes et visuels ;
- La gestion des formats de date ;
- La gestion des devises et des systèmes d’unités ;
- La gestion des fuseaux horaires ;
Il existe différentes façon de créer un site multilingue sous Drupal. Afin de s’y retrouver il est important de déterminer dans un premier temps quel type de site on souhaite mettre en place :
- Combien de langages sont supportés ?
- L’interface utilisateur doit-elle être intégralement traduite ?
- Y a-t-il du contenu pour toutes les langues ? Tout le contenu doit-il être traduit ?
- Qu’arrive-t-il au contenu non traduit ?
« Pas de panique ce guide est là pour vous orienter ! »
Les trois types de site multilingue
En effet malgré ces questions, il s’avère qu’il n’existe que 3 grands types de site multilingue.
Premier cas : Le site langue étrangère
C’est un fait, dans Drupal toute personne non anglophone est considérée comme « étrangère ». En effet notre CMS préféré a été écrit dans la langue de Shakespeare et a fait de cette dernière sa langue maternelle.
Si vous souhaitez donc traduire l’interface pour faciliter la prise en main du backoffice par votre utilisateur final vous devrez passer par le module « I10n ».
Une fois le module activé, il vous sera possible d’ajouter la langue de votre choix en vous dirigeant vers le menu de configuration des langues.
« Configuration > Regional and Language > Languages »
Une fois la langue sélectionnée l’ajout est automatique.
Il ne vous manque plus qu’à sélectionner la langue ajouter comme celle étant par défaut… cocorico !
La langue dans laquelle le contenu est saisi importe peu. Drupal ne fait pas de vérification linguistique et la traduction ici ne se limite qu’à l’interface. C’est en soit, je vous l’accorde, un faux multilingue. Passons donc aux choses sérieuses !
Deuxième cas : le site multilingue
Ce type de site est très peu utilisé car cela revient à avoir plusieurs sites en 1 sans liens d’associations entre les contenus localisés. Nous allons quand même nous y attarder afin de comprendre le fonctionnement du module « i18n ».
Il nous faut dans un premier temps traduire l’interface, et pour cela vous connaissez le chemin (cf. chapitre ci-dessus). Nous allons ensuite pousser la configuration plus loin afin de détecter la langue de l’utilisateur et afficher ainsi le contenu associé à cette langue.
La détection : admin/config/regional/language/configure
Drupal offre par défaut plusieurs moyens de détection pour la langue de l’utilisateur ; la plus courante étant la détection via l’URL que ce soit par un nom de domaine (fr.mon-site.com, mon-site.fr, mon-site.en, …) ou un préfixe de chemin (mon-site/fr, mon-site/en, …).
Une fois l’option de détection choisie, les configurations s’effectuent indépendamment au niveau de chaque langue. Dans notre cas, l’option importante à saisir est soit le « Code de la langue du préfixe de chemin » soit le « Domaine de la langue ». Suivant la méthode de détection préférée vous devez remplir l’une ou l’autre des options (attention à ne pas oublier le « http:// » dans le cas du domaine).
Maintenant que la détection est en place, nous passons à l’activation du l’option multilingue pour le contenu. En effet, détecter est une bonne chose mais si le contenu n’existe que sous une seule langue l’opération est quelque peu inutile. Vous devez donc activer l’option dans les paramètres multilingues des types de contenus concernés. Attention cette action n’est pas rétroactive !
Bien ! Si l’on décide désormais de tester, on s’aperçoit tout simplement que cela… ne marche pas !
Vous avez beau affecter une langue différente au contenu, lorsque vous accéder à votre site « fr » ou « en » tous vos contenus remontent. Pas de panique ! Vous vous souvenez de la localisation des éléments ? Et bien c’est le fameux module « i18n » qui va nous permettre de la mettre en place (faites attention car ce dernier requiert l’activation d’un autre module appelé « Variable »). Une fois le module installé vous allez pouvoir activer le sous-module appelé « Multilingual select » et vous dirigez vers l’administration du multilingue sous Drupal.
La localisation : admin/config/regional/i18n
Dans l’onglet « Sélection » vous allez enfin pouvoir avoir accès à votre sésame pour le multilingue.
Cocher l’option « Sélectionner les nœuds selon la langue » et le tour est joué !
Troisième cas : le site multilingue avec traduction
Ici, on entre enfin dans le vif du sujet ! Le multilingue énoncé ci-dessus ne permet pas une traduction au sens propre du terme car aucun lien d’association linguistique n’est établit entre les contenus. En somme, avoir un site possédant du contenu sous plusieurs langues, c’est bien, avoir le même site avec une notion de traduction entre les contenus, c’est mieux !
De par son aspect modulaire Drupal permet de mettre en place une même fonctionnalité de plusieurs façons différentes. Heureusement, pour ce qui est de la traduction il n’en existe que 2. Plus généralement, il existe 2 types de traduction :
- La traduction dite symétrique : où l’ensemble du contenu est traduit ;
- La traduction dite asymétrique : où seulement une partie du contenu est traduit ;
Ces 2 types de traduction correspondent à 2 méthodes que je vais vous présenter en détail par la suite. Il faut toutefois noter que dans le cadre de la traduction asymétrique la question de la gestion des contenus non traduits se pose. Si un utilisateur souhaite accéder à une version non-traduite d’un contenu, quel comportement doit-on mettre en place ? Afficher le contenu par défaut ou ne rien afficher ?
Dans la suite de l’article, nous allons étudier les différentes méthodes de traduction…
Lire la suite : http://blog.webnet.fr/multilinguisme-avec-drupal-7-partie-2/