xili-language version 2.21.0

L’extension coeur de sa trilogie xili-language poursuit son développement…

Le widget “liste de langues” ou sélecteur de language

Après la période consacrée à la gestion des menus et de leur style avec image (drapeau), voici le moment venu de revoir le widget “liste de langues” ou sélecteur de language (switcher).
L’adjonction d’images se fait sur la base d’une feuille de style intégrée dans le header si et seulement si ce widget est actif. (grâce à la fonction is_widget_active). Comme pour les menus, il faut que le thème supporte (add_theme_support) le “custom_xili_flag” introduit avec xili-language version 2.15.
Réglages du widget Liste de langues
Trois styles possibles : texte seul (comme avant), image + texte et image/drapeau seul (en liste horizontale compacte).
Widget dans 2016
Les images peuvent avoir trois origines :
– celles prévues par la développeur du thème (donc dans un sous-dossier du thème et déclarées lors du setup du thème)
– celles introduits comme image de menu dans le catalogue média associée à une langue
– et en cas d’absence, pour quelques images prévues dans l’extension.

Importation des données multilingues d’une installation pilotée auparavant par Polylang

Quelques années après la naissance de xili-language, Polylang a choisi aussi la voie de la taxinomie “language” pour organiser les posts selon leur langue. L’implantation un peu différente de cette taxinomie est commentée ici. Cette approche conserve les posts (article, page) dans leur état initial. Dans une approche résolument simple avec une ergonomie efficace, son succès démontre qu’elle répond aux attentes dans un contexte multilingue très concurrentiel. Mais comme pour la musique, les voitures, le webmestre/développeur peut souhaiter des qualités différentes ou complémentaires, c’est pour cela, hormis d’autres raisons, que la trilogie xili-language continue son développement.
Si, cours de la vie d’un site internet, le besoin apparaît, xili-language version 2.1+ est capable de détecter la présence précédente de Polylang et de récupérer les données pour continuer le mode multilingue avec la trilogie (xili-tidy-tags, xili-dictionary). Attention, il faut simplement dans la liste des extensions, désactiver Polylang sans le supprimer car sinon, faute d’option prévue à cet effet par son auteur, toutes les données spécifiques à Polylang seront supprimées. Une fois, xili-language activée, un processus semi-automatique en plusieurs étapes se met en place… c’est l’objet d’un article spécialement dédié aux étapes à suivre.

Option de visibilité des widgets selon la langue courante

Choix de visibilité des widgets
Si l’option est activée (5e onglet), le webmestre trouve dans l’interface de chaque widget un groupe de menus déroulants pour décider si ce widget doit apparaître ou non.
Cette option est accessible aussi dans la personnalisation.

corrections diverses

Chaque version est l’occasion de corriger et d’optimiser le code notamment en intégrant des fonctions apparues depuis WP 4.1. ou des versions de javascript récentes.

amélioration du code et des algorithmes

Ajout de filtres pour personnaliser le style de mise en place des images/drapeaux dans le sélecteur de langue.
Ajout du nouveau thème twenty sixteen dans la liste des thèmes de base livrée avec WordPress.
Les versions intermédiaires avant publication sur le dépôt WP (repository) sont disponibles sur GitHub

Importation des données multilingues d’une installation pilotée auparavant par Polylang

Préambule

TRES IMPORTANT : le changement d’extensions doit être précédé IMPERATIVEMENT par une sauvegarde de la base de données.

La réalisation de sauvegardes a été très utile dans les phases de développements de cette nouvelle fonctionnalité pour xili-language 2.21+ et permettait à tout moment de revenir à une phase antérieure.

Même si la taxonomie de xili-language et polylang ont le même nom, il y des différences expliqués dans cet article.

Ceci concerne des webmestres avec un bon niveau de connaissance de WordPress… et des raisons “CMS” qui les motivent à passer de Polylang à xili-language (2.21+).

Préparation

Installation SANS ACTIVATION des 3 extensions xili-language, xili-tidy-tags et xili-dictionary. Soit via FTP soit via la liste des extensions.

Ouvrir plusieurs onglets dans votre navigateur : deux sur la liste des extensions, un sur le site côté visiteur et un sur le tableau de bord

Désactivation de Polylang

Attention, il faut dans la liste des extensions, simplement  désactiver Polylang sans le supprimer car sinon, faute d’option prévue à cet effet par son auteur, toutes les données spécifiques à Polylang seront supprimées.

Désactivation Polylang
Désactivation Polylang
Activation xili-language
Activation xili-language

Une fois, xili-language activée, un processus semi-automatique en plusieurs étapes se met en place et ouvre la page d’accueil

Accueil de l'activation xili-language
Accueil de l’activation xili-language

Une fois sur les pages de paramétrages, on voit que les éléments laissés par Polylang sont détectés et transformés pour la gestion multilingue par xili-language :

Lancer la récréation des liens entre posts
Lancer la récréation des liens entre posts

Régénération des éléments multilingues

La régénération des liens entre posts effectuées, le message indique d’aller dans l’onglet Réglages Expert.

fin de la régénération
fin de la régénération

Comme l’étape suivante concerne les taxinomies, aller dans l’onglet du navigateur préparé au préalable où il y a la liste des extensions et activer xili-tidy-tags :

Activation xili-tidy-tags
Activation xili-tidy-tags

Revenons à la page de réglages Expert de xili-language et à la fenêtre (meta-box) “actions et paramètres spéciaux”:

Lancement des importations de taxinomies
Lancement des importations de taxinomies

Les opérations liées aux taxinomies concernent les étiquettes (post_tag) avant tout:

Les étiquettes et leur groupement
Les étiquettes et leur groupement

avec l’écran dans le groupage xili-tidy-tags

groupage xili-tidy-tags réalisé
groupage xili-tidy-tags réalisé

Elles préparent les éléments pour les catégories qui sont gérées en mode traduction (sans clonage) par xili-language avec xili-dictionary. (voir l’article…)

Pour nettoyer la base WP avant de supprimer l’extension Polylang, il faut passer à l’étape suivante (ceci peut-être fait plus tard) :

Lancer le nettoyage
Lancer le nettoyage
La base est nettoyée des éléments spécifiques de Polylang
La base est nettoyée des éléments spécifiques de Polylang

ATTENTION :

Il va de soit que désormais, Polylang ne doit pas être réactivée. Pour revenir en arrière : utiliser les backups.

Les fichiers Polylang sont supprimables via la page de liste des extensions ou mieux via FTP. xili-language a fait en sorte toutefois de renommer le fichier uninstall.php en uninstall_XL_desactived.php afin qu’il ne détruise pas notamment la taxonomie “language” lors du processus suppression géré par WP.

 

Les taxinomies et les extensions multilingues

Depuis 2009, xili-language suivi deux ans après de Polylang sont deux extensions qui utilisent une taxinomie nommée “language”. Cela est possible depuis WP 2.3 – voir fichier taxonomy.php
Le principal avantage de cette approche ‘taxonomy‘ est que l’on ne détruit pas les enregistrements (post) originaux. (En effet, d’autres extensions modifient les champs ‘post_content’ et ajoutent des tables…)

Comme celles de base les catégories (category) et les mots-clés/étiquettes (post_tag), chaque élément (term) de la taxinomie est décrit par son nom, son raccourci (slug) et sa description. Les autres champs sont des éléments techniques (term_id, taxonomy_id,…)

Exemple de la catégorie “Recent News”
– Name : Recent News
– Slug : recent-news
– Description : the most recent news to be published

Dans xili-language et la taxinomie “language”, une langue est définie ainsi :
– Name : fr_FR (iso)
– Slug : fr_fr
– Description : French
et
dans Polylang, le choix est différent :
– Name : French
– Slug : fr (raccourci)
– Description : plusieurs données sérialisées d’un tableau (array) dont le nom iso (locale => fr_FR) utilisé par WP pour dénommer les fichiers de traduction.

Le point clé (pivot) est dans les deux cas, ce code iso qui décrit la langue et le pays de son utilisation : fr_CA est utilisé au Canada si l’on veut être précis.

L’utilisation de données sérialisées dans la champ description est une originalité de Polylang que l’on ne retrouve pas dans WP. De tels champs ne permettent pas de requête SQL.

Comme le montre le fichier locale.php de JetPack (utilisé par xili-language), la gestion des langues est très complexe et utilisent plusieurs codages. On peut y trouver d’autres éléments invariants comme le nom dans la langue citée (français) et son sens (ltr). En fait, il y a très peu de langues dites rtl.

Moyennant quelques centaines de lignes, xili-language (2.21+) peut récupérer les éléments multilingues d’une précédente installation pilotée par Polylang.
xili-dictionary est lui compatible avec Polylang (grâce à des filtres et une abstraction du modèle de taxinomie), pour, par exemple, traduire des fichiers de langue pour un thème ou une extension avec génération de fichiers pot, po, mo) mais aussi récupérer les chaînes.