par

Multisites & Multilingue

Le multisite permet d’installer sur un même serveur plusieurs sites WordPress qui vont partager la même base de données via des tables différentes.

https://codex.wordpress.org/fr:Cr%C3%A9er_un_r%C3%A9seau

Nativement, la solution multi-site permet d’installer de nouveaux sites via des répertoires ou des sous-domaines. Toutefois, il existe un plugin pour faire du multisite, multi-domaine.

https://wordpress.org/plugins/wordpress-mu-domain-mapping/

Le multi-site est particulièrement intéressant dans :

1 – La mise en place d’un réseau de type « franchisé. ».

Chaque site dispose de sa propre url, de ses propres contenus et de ses propres utilisateurs mais partage une « identité commune », généralement transmise via un thème principale unique qui peut toutefois être personnalisé via :

  • Des thèmes enfants.
  • Des options de sites. (get_option pour une option « locale » vs get_site_option() pour une option globale du réseau ).

https://codex.wordpress.org/Function_Reference/get_site_option

2 – La mise en place d’un réseau de sites par « territoire » pour de la localisation (plutôt que pour de la traduction)

Chaque site dispose d’un suffixe de « langue » (/fr,/en/es) et peut être installé dans sa langue originale et disposé d’un contenu très différent des autres sites. (catalogue produit différents, legislation différentes etc…)

En multisite, il faut noter que l’administrateur principale devient « super-administrateur » à la création du réseau. Il devient donc administrateur de tous les autres sites crées et à venir. Tous les autres utilisateurs peuvent être assignés à un ou plusieurs sites.

Concernant les plugins, ils peuvent être activés « globalement » pour être disponibles partout. Ou activable site par site.  Généralement, la  plupart des plugins fonctionnent  sans problème en multisite mais nécessite des réglages dans chacun des sites. En développement spécifique pour du mutlisite, il convient de recourir à la fonction add_site_option() pour disposer de réglages commun à tout le réseau.

Pour ne pas avoir à gérer le cas particulier du www.mondomaine.com, c’est généralement une bonne idée d’installer le WordPress initial à la racine de mondomaine.com/

A contrario, la création d’un WordPress multilingue, n’implique pas la création de nouveaux site mais la création de traduction de contenus existants. Cette fonctionnalité ne fera probablement jamais partie du core WordPress et nécessite donc l’utilisation d’un plugin. Aujourd’hui, Polylang semble être la solution à retenir. Notamment dans sa version pro qui propose du support et des extensions, par exemple pour WooCommerce.

https://polylang.pro

En s’appuyant sur les tables natives de WordPress et via la création de taxonomie pour l’ajout de nouvelles langues, la solution Polylang est facile à mettre en place et performantes. Elle s’intègre parfaitement à ACF et la plupart des plugins les plus populaires, notamment grâce à une compatibilité avec le formal wpml-config.xml

Les contenus tel que les posts, catégorie et menus seront à traduire directement depuis le back-office.

Les chaines de caractères présentent dans la table « options » seront à traduire depuis le menu « string translation » (si présente dans wpml-config.xml et / ou enregistrées via https://polylang.pro/doc/function-reference/#pll_register_string

Les chaines « en dure » des thèmes et plugins appelées via get_text devront être traduit via poedit dans des fichiers po/mo ou directement dans le back-office à l’aide de loco translate. https://fr.wordpress.org/plugins/loco-translate/

Attention, loco translate ne sera pas en mesure de parcourir des sous-dossiers dans mu-plugins/

Pour avoir plus d’informations sur l’utilisation de Loco Translate vous trouverez une vidéo sur wptv.fr intitulée : comment traduire un thème ou un plugin WordPress.

Lors de la création de contenu « automatique », import ou autre, il faudra utiliser la fonction « pll_set_post_language » pour configurer la langue d’un article tout juste créé. Puis « pll_save_post_translations »  pour associer les différentes traductions disponibles pour cette article.

Référentiel polylang : https://polylang.wordpress.com/documentation/documentation-for-developers/functions-reference/

Ecrire un Commentaire

Commenter