Le plugin ou l’extension xili-language permet d’avoir un site (un blog) WordPress multilingue. Ainsi peuvent cohabiter des articles en français et dans une autre langue comme ici sur https://dev.xiligroup.com.
L’installation se fait comme celle de tout plugin mais nécessite de vérifier que le thème utilisé a bien un codage multilingue (avec les fonctions _e() e __() comme dans le thème ‘kubrick’. Pas de texte codé en dur entre les tags comme <h2>mon titre</h2> mais <h2><?php _e(‘my title’,’kubrick’) ?></h2>.
Dans l’interface d’administration accessible via les réglages, il suffit de mettre en place la liste des langues souhaitées (ces langues doivent avoir leur fichier .mo dans le dossier du thème (par exemple fr_FR.mo, en_US.mo, de_DE.mo etc… En version alpha, xili-dictionary peut aussi créer ces fichiers .mo via l’interface d’administration sous réserve que le thème soit correctement écrit. Le programme PoEdit est aussi utilisable.
Au moment de publier un article, il suffit de cocher la langue de l’article. Il sera alors classé dans la langue choisie.
Que va-t-il se passer si un internaute arrive via un moteur de recherche sur cet article ? Il va non seulement le lire dans sa langue mais aussi le thème s’afficher avec les mots de cette langue et il pourra ainsi naviguer via les termes proposés dans les menus.
Que fait xili-language ? Il utilise les mêmes fichiers .mo d’un thème multilingue normalement fixé dans la même langue que celle de l’auteur – administrateur du site (via WP_LANG dans wp-config.php) mais ici il permet un changement à la volée selon des règles de l’extension.
C’est pourquoi dans le fichier functions.php du thème, il faut commenter la ligne
//load_theme_textdomain(‘nomdutheme’);
et la faire suivre par
define(‘THEME_TEXTDOMAIN’,’nomdutheme’);
De plus quand le thème est dans une langue, l’extension modifie les liens associés (par ajout de &lang=xx_xx) aux catégories ainsi si on cherche dans celles de l’actualité, il fait une recherche dans la seule langue courante pour cette catégorie.
Cela est possible par ce que WordPress a introduit depuis la version 2.3 les tables taxonomy et terms… xili-language ajoute donc une taxinomie language avec sa clé lang (category a cat). Il est donc aisé en quelques lignes de code d’avoir des requêtes de type les articles de telle catégorie en telle langue. mais on peut aussi faire de même pour les mots clés ou une recherche. Si vous regardez bien l’url, vous pourrez voir ?cat=news&lang=en_us et si vous voulez restreindre une recherche ?s=wordpress,
il suffit d’ajouter la langue donc ?s=wordpress&lang=en_us.
et dans le cas d’un site avec plus variante d’une même langue, on aura
&lang=fr_BE,fr_FR,fr_CA !
Aujourd’hui dans la version actuelle de la taxonomie ‘language’, un article n’a qu’une SEULE langue donc de la recherche on aura les articles d’un groupe de langues.
Que faire des termes qui ne sont pas dans le thème, comme le nom des catégories et leur description ? Soit compléter le fichier .po de chaque langue et en faire un .mo via poEdit, soit utiliser xili-dictionary dans sa version actuelle de test.
La version 0.9.4 apporte la possibilité d’adapter les règles de base de modification du thème et des liens grâce à des fonctions installables dans le fichier functions.php par le créateur du thème. Par exemple, ne pas faire le changement de langue pour une catégorie donnée… ou modifier le style de la liste des langues par insertion d’une image à chacune.
Q : le formulaire de recherche dans le bas de page de ce site montre des boutons radio pour choisir la langue qui va cadrer la recherche. Comment fait-on cet ajout ?
R : la version 0.9.5 de xiligroup apportera cette nouvelle fonction. Il suffira d’ajouter dans le thème un tag/fonction php après l’input du formulaire.