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
2. premiers paramétrages
- Les langues
- Le réglage du comportement de la page d’accueil
- Cas particulier d’une page à 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
3.1 Ajout des catégories de leur traduction
Pour créer les fichiers de traduction, la mise en place de xili-dictionary est recommandée:
Après les traductions et avant la création du fichier :
Les articles, les traductions et les liens
4. Mise en place du menu et du sélecteur de langues
5. La taxinomie catégorie et les catégories versus les mots clé
6. Les dates et termes spécifiques du site et du thème : traduction
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.
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.
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é.
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.
2015-04-23
(en cours de rédaction)