Installer un site multilingue avec
xili-language

Ce petit guide est destiné à des utilisateurs un peu averti sur le fonctionnement de WordPress et qui souhaite créer un site bi ou multilingue.
xili-language a été créé il y a plus de six ans parce que les extensions déjà disponibles (*) ne correspondaient pas aux attentes et ne reposaient pas sur une utilisation de la taxonomie “langage” qui permet d’affecter à un texte (article ou page) la langue dans laquelle il est écrit.
Dans ce guide seront progressivement regroupés des extraits de texte déjà publiés en anglais ou en français. Des liens vers des articles et sites plus anciens sont disponibles à droite sur la page d’accueil !

(*) Ce choix technique est pour le moment confirmé selon notre réflexion active sur l’offre actuelle. Un des soucis principal est aussi de ne pas corrompre de façon irréversible la base de données comme on peut le voir sur des extensions publiées récemment.

Contexte

Site vitrine ou informationnel, blog multilingue, contenu quasi équivalent.

Il n’y a pas qu’une seule façon de présenter un site internet multilingue. En effet l’approche est très différente entre un site où chaque élément trouve son équivalent dans les autres langues et un site où seulement des parties sont adaptées pour un autre contexte linguistique. Les cas les plus typiques sont les sites destinés à des populations qui parlent plusieurs langues (Canada, Belgique, Suisse,…).

La préparation, les pré-requis

Eviter les confusions courantes

La langue racine de WordPress est l’anglais US. Dans sa structure, le moteur WP est prêt à être traduit dans de nombreuses langues sous réserve que les fichiers de traduction soient en place (.mo). Depuis la version 4.0, tout est prêt pour que, dès l’installation, la langue du site soit choisie par le webmestre… Mais des thèmes comme des extensions ne sont pas toujours prêts à la traduction/internationalisation (translation ready) et n’ont pas nécessairement les bons fichiers dans la langue souhaitée.

Translation ready versus multilingual

Dans les forums WP, on rencontre souvent ces deux termes dans un contexte d’internationalisation (“localization”). Ainsi quand on veut créer un site dans sa langue, on change une fois pour toute la langue et tout le site sera dans cette langue. Cela est possible car le noyau de WP est prêt avec des kits d’installation préparés pour, par exemple les francophones, ou les anglais de Grande Bretagne qui ont un anglais un peut différent de celui pratiqué aux USA. Par contre, il vaut mieux réserver le terme “multilingual” quand le site va contenir plusieurs langues ciblées sur plusieurs populations de visiteurs/lecteurs.

Traduction automatique versus multilingue

Un site multilingue a des contenus entièrement contrôlés par les auteurs / traducteurs du site. Un site en français dont les contenus seraient traduits à la volée par un automate n’est pas proprement dit un site multilingue.

Choisir la bonne architecture des données

WP single versus WP network (multisite)

Quelques critères

  • La taille du site, le nombre d’articles proposés, la fréquentation attendue.
  • La facilité de l’exploitation et la maintenance (nombre d’auteurs)
  • Le niveau technique pour gérer le site.
  • En mode single, l’accès sélectif selon la langue via les voies feed et json rest api sans ajouter de code inutile. Les “WebApp” (sur la base HTML5) qui fonctionne notamment sur les tablettes et smartphones (iOS, Android,…) sont une nouvelle façon de consulter un site. Et donc si l’extension multilingue respecte les règles du noyau (core) WordPress, ces modes sont actionnables sans difficulté.

Attention aux extensions

La plupart des extensions sont “translation ready” (prête à l’internationalisation grâce aux fonctions “gettext” de php) et peuvent donc être utilisées dans un site publié dans une langue ou une autre tant du côté utilisateur que du côté administrateur/auteur. Par contre, toutes ne sont pas prêtes à l’environnement multilingue où l’environnement/contexte du thème doit être en concordance avec la langue de l’article.

Choix des langues – impacts

Impact sur le style

Evident pour les langues “rtl” qui s’écrivent de droite à gauche

impact sur la présentation générale

Les listes d’article

Selon la règle la plus courante, si une liste d’articles est sélectionnée selon une catégorie et une language donnée, il est bien évident que les menus et autres termes visibles sur la page seront affichés dans la langue choisie. Par contre si on affiche une liste résultante d’une recherche sans sous-sélection de langage, alors il faut définir une règle pour le contexte.

Les articles affichés seuls

Ici il est bien évident que les menus et autres termes visibles sur la page seront affichés dans la langue du dit article. C’est compréhensible, car il se peut qu’on arrive sur cette page après une recherche dans un moteur de recherche.

La page d’accueil

Il y a plusieurs types:

  • liste des derniers articles
  • page statique
  • page composite avec diaporama et listes diverses résultantes de requêtes ciblés sur des thèmes ou sujets.
    Quand on choisit un thème et que l’on vérifie qu’il peut être multilingue, c’est les composants de la page composite qui est examiné avec soin. Ainsi pour le thème riche Twentyfourteen, dans le thème enfant Twentyfourteen-xili, la sélection des articles à la une intègre la sous-sélection par langue.

Quelques repères techniques

Pour décrire le pas à pas, on va se mettre dans le cas de figure d’un site en français pour lequel on va ajouter la langue anglaise avec ajout des articles et pages qui seront des traductions/ adaptations.

Souvenons-nous que l’anglais US est la langue de base de WordPress, donc si les termes dans cette langue conviennent, il n’est pas nécessaire d’avoir des fichiers .mo pour la langue en_US.

Techniquement, étape par étape

Comme pour les antibiotiques, la création d’un site multilingue ne peut être automatique, ne serait-ce que par l’ajout de composants techniques (extensions) à paramétrer, la mise au point des dictionnaires terminologiques et par la nécessaire traduction des articles et de leur classement pour une navigation pertinente.

Installation de l’extension xili-language et les deux autres de sa trilogie (xili-tidy-tags, xili-dictionary)

Pour bien fonctionner, un site utilisant xili-language a besoin des extensions xili-tidy-tags et xili-dictionary. Cette dernière pouvant être désactivée une fois les fichiers .mo mis en place avec les textes de structure traduits. En utilisant ces trois extensions, vous approchez de plus près les mécanismes de gestion de contenu (CMS) mis en oeuvre dans un site multilingue reposant sur une installation unique de WordPress (non multisite ou network).

Préparation des articles et pages

Le plus simple est de préparer des textes dans les deux langues avant de les insérer dans le site.

Création du dictionnaire pour les termes du thème et des taxinomies spécifiques du site web et de son contenu.

Comme pour les thèmes et extensions, les listes de termes et leur traduction sont stockées dans des fichiers .mo (qui sont une forme compactée des fichiers textes .po). xili-language utilise la même technique pour stocker les traductions des éléments spécifiques de votre thème et des paramètres du site (titre de catégorie etc…). La trilogie propose xili-dictionary pour générer ces fichiers sur la base d’un dictionnaire créé via des custom post type. Cela évite l’utilisation du logiciel poEdit sur son ordinateur.

Mise en place illustrée par copie d’écrans

1. installation de l’extension, activation

Choix de la langue
Choix de la langue à l’installation ici le français
Installation de l'extension
Installation de l’extension

2. premiers paramétrages

Ouvrir la page des réglages de xili-language
Ouvrir la page des réglages de xili-language
  • Les langues
  • Le choix des langue possibles
    Le choix des langue possibles
  • Le réglage du comportement de la page d’accueil
  • Comportement de la page d'accueil
    Comportement de la page d’accueil
  • Cas particulier d’une page à l’accueil
  • Page statique à l'accueil
    Page statique à l’accueil

    Si, à la place de la liste des derniers articles, vous faites le choix d’avoir une page statique comme accueil, il est important que la page choisie dans le réglage lecture soit celle par défaut (ici en_US) et que celle-ci ait une page liée dans l’autre langue (ici fr_FR).

3. Insertion des premiers articles et de leur traduction

Choix de la langue du premier article
Choix de la langue du premier article
Création de l'article dans l'autre langue
Création de l’article dans l’autre langue
Traduction de l'article lié
Traduction de l’article lié
Liste des articles liés
Liste des articles liés

3.1 Ajout des catégories de leur traduction

Ajout d'une catégorie
Ajout d’une catégorie
La liste des catégories
La liste des catégories

Pour créer les fichiers de traduction, la mise en place de xili-dictionary est recommandée:

Ajout de xili-dictionary
Ajout de xili-dictionary
Remplissage du dictionnaire avec les termes
Remplissage du dictionnaire avec les termes
Liste des textes dans le dictionnaire
Liste des textes dans le dictionnaire

Après les traductions et avant la création du fichier :

La liste des msgid et des msgstr (traduction)
La liste des msgid et des msgstr (traduction)
La création du fichier local-fr_FR.mo
La création du fichier local-fr_FR.mo

Les articles, les traductions et les liens

Les articles et traductions
Les articles et traductions

4. Mise en place du menu et du sélecteur de langues

Une structure simple de menu
Une structure simple de menu

5. La taxinomie catégorie et les catégories versus les mots clé

La liste des catégories et des intitulés traduits
La liste des catégories et des intitulés traduits

6. Les dates et termes spécifiques du site et du thème : traduction

Génération du dictionnaire pour les dates
Génération du dictionnaire pour les dates
Liste des termes dans le dictionnaire
Liste des termes dans le dictionnaire

7. Les “fameux” drapeaux… – add_theme_support ( ‘custom_xili_flag’ ) !

7.1 Remarque préliminaire

une langue n’est pas nécessairement synonyme d’un drapeau… Rares sont les sites canadiens ou belges qui mettent le drapeau français pour signaler la langue française d’un article !

7.1 Evolution des approches depuis 5 ans

Dès l’origine, le sélecteur de langues peut avoir des drapeaux dans son style. Le plus simple est de gérer la feuille de style avec des images en background et un texte de lien indenté hors de la page (-9000px).
Pour les thèmes par défaut (la série livrée avec le kit WordPress comme twentyten et suivant), les thèmes enfant proposés sur github par xiligroup incluent des mécanismes de création de ces lignes de style. Ils sont disponibles comme exemple pour d’autres créateurs de thèmes.
Depuis la version 2.15, xili-language introduit une méthode pour gérer des drapeaux déclarés comme tels dans la bibliothèque des médias. Cela suppose que le thème “supporte” le registre ‘custom_xili_flag’ comme les thèmes par défaut (de twentyten à twentyfifteen) qui n’ont pas besoin de déclaration spécifique dans le fichier functions.php.
voir cet article récent

8. Les mots clés et l’extension xili-tidy-tags

Dans le modèle de données utilisé par xili-language, on utilise les catégories comme un mode de classement. Donc il est normal d’y mettre un article quelquefois sa langue (et si cet article est affiché, alors les termes du thème et le nom de la catégorie sera traduit).

Pour les mots-clés, c’est un peu différent, car on les considère comme des étiquettes qui ne sont pas toujours traduisibles ou qui sont communes aux différentes langues comme les marques par exemple. Il est donc possible de créer des groupes de mots-clés par langue ou valeur sémantique. L’extension xili-tidy-tags est autonome car elle peut aussi servir sur des sites dans une seule langue où par exemple on va créer des regroupements de mots-clés selon les catégories d’articles.

L’extension xili-tidy-tags contient deux écrans principaux pour les réglages et l’affectation d’une langue à un ou une série de mots-clés.

1) Dans le premier écran, on définit les groupes de langue ou sémantiques selon ceux déjà créés par xili-language.

Liste des groupes de mots-clés
Liste des groupes de mots-clés

2) Dans le second, si ce n’est déjà fait lors de l’écriture d’un article, on assigne une langue à un mot-clé sur la base des cases à cocher.

Affectation des langues aux mots-clés
Affectation des langues aux mots-clés

Les mots-clés et les alias

Pour lier les mots-clés entr’eux parce qu’ils ont quasiment le même sens mais dans une autre langue, l’extension xili-tidy-tags utilise la technique des alias présente dans WordPress. Cela sera utile pour passer d’une langue à l’autre quand on affiche une liste d’articles liés à un mot-clé.

Les alias de mots-clés
Les alias de mots-clés

9. Les couples d’images (une par langue ou une légende par langue)

xili-language autorise deux modes de rangement des images selon la langue. Le mode classique où chaque image a sa propre langue. Le mode légende où l’image est la même dans les deux langues mais où la légende sera différente. Cela évite de redonder le stockage. Dans la bibliothèque des médias (en mode liste) on voit ici les images de cet article qui n’est pas encore traduit.

Liste et langue des médias
Liste et langue des médias
Insertion d'un média et affectation de la langue
Insertion d’un média et affectation de la langue

2015-04-23
(en cours de rédaction)

un site internet multilingue avec WordPress et xili-language