Projets multi langues et multi sites avec Seblod

17 vues
26 juillet 2016
Cyril
multilangues-multisites-joomla
 

 Ce tutoriel Joomla!, issu de nos formations SEBLOD, explique comment avec Joomla! et SEBLOD on gère un projet multi sites et multi langues. Dans un billet précédent je brossais le paysage des solutions multi sites pour Joomla! Dans ce billet nous nous intéressons au projet multi sites et multi langues avec le couple Joomla! + SEBLOD.  Par cette appellation on entend un projet multi sites où chaque site possède plusieurs versions, une pour chaque langue.


Dans la suite de ce tutoriel on aura donc les domaines suivants: site1-fr.com et  site2-fr.com


Pourquoi est-ce particulier ?

On ne peut fonctionner dans un projet multi sites comme dans un projet simple par rapport au multi langues. Ainsi le plugin de filtrage de langues Joomla! ne peut plus être utilisé ici car il n'est pas compatible avec la gestion des langues dans un projet multi sites.

La raison en est qu'un projet Joomla! ne peut avoir qu'une seule page d'accueil par langue. Dans un projet multi sites multi langues on a naturellement une page d'accueil par langue par site.

La solution est d'utiliser des domaines différents par langues. Ainsi dans notre exemple, si on veut des versions françaises (FR) et anglaises (EN) on aura donc 4 domaines:

site1-fr.com site1-en.com site2-fr.com et site2-en.com


Ce qui se traduit dans le gestionnaire de sites SEBLOD de la façon suivante:

multisites multilangues seblod

Et pour chaque site on précise la langue et l'élément de menu principal:

multisites multilangues site1 language

Traductions Jtext Seblod

Il faut activer la traduction des labels par langue au niveau de SEBLOD:

Multisites multilangues seblod jtext

 

Sites et ACLs

Pour chaque site on a un domaine et pour chaque domaine, selon la logique SEBLOD, on a un jeu d'ACL:

multisites multilangues acls

On ajoute autant d'acls transverses aux langues qu'on a de sites. Ces acls seront utilisées pour les ressources qui devront s'afficher quelque soit la langue:

multisites multilangues acls sites

Chacun de ces niveaux d'accès transverses est affecté à tous les groupes correspondants à toutes les langues d'un même site. Par exemple pour l'acl 'site1' on a:

multisites multilangues acls site1

Conserver le menu principal par défaut

Il faut, comme dans tout projet multi langues, conserver le menu principal avec un élément de menu marqué de l'étoile, même si on ne l'utilise pas. multisites multilangues menu defaut

Désactivation du module de menu principal

Par défaut Joomla! s'installe avec un module de menu qui affiche le menu par défaut. Ce menu ne sera pas utilisé et donc il faut désactiver le module de menu principal par défaut.

multisites multilangues module menu principal

 

Filtre de langue

Le plugin Filtre de langue NE DOIT PAS être activé dans un projet multi site SEBLOD.

Multisites multilangues filtre langues

Pages d'accueil

Il faut que chaque site dispose de son menu principal et de sa page d'accueil. Pour cela on crée autant de menus que sites. Chaque menu doit avoir un élément de menu principal (quelqu'en soit le type : lien vers un article ou blog des articles d'un catégorie...) marqué par la langue.

multisites multilangues menus

Important: Tous les éléments de menu d'un même menu doivent être marqués de la bonne langue et du bon niveau d'accès.

L'élément de menu principal pour chaque menu n'a pas besoin d'avoir l'étoile activée:

multisites multilangues elements menu site1


On crée aussi autant de module de menu que de sites par langue:

multisites multilangues modules menus

Changement de langue

Le module classique Joomla! de changement de langue ne peut être utilisé ici. On doit créer un module (type 'personnalisé') pour chaque site qui renverra vers les versions FR et EN.

On pourra écrire par exemple dans le module de changement de langue pour le site 1:

multisites multilangues code chang langues

Dans l'exemple suivant pour le module de changement de langue du site1, la langue de ce module est positionnée à TOUTES et son ACL (niveau d'accès) est 'site1' pour qu'il s'affiche sur les versions FR et EN du site. Idem pour le module de changement de langue du site2.

Multisites multilangues module langues

Principes généraux pour la suite

Comme pour un projet multi langues classique (avec un seul site) le principe est de dupliquer les contenus, les modules et les menus pour chaque version linguistique du site.

Chaque élément doit etre marqué de la langue et de son niveau d'accès. Ce qui correspond au niveau d'accès PUBLIC par défaut dans un projet simple correspond ici au niveau d'accès site1-fr, site1-en, site2-fr ou site2-en.

Duplication des contenus

On duplique ou on crée des contenus spécifiques par langue:

multisites multilangues articles

Si on veut dupliquer on utilise le bouton TRAITEMENT (bien s'assurer que le plugin DX batch SEBLOD est installé et activé)

multisites multilangues traitement article Note: s'assurer que les catégories qui contiennent les articles sont bien marquéées avec la langue TOUTES et l'ACL 'public'

Duplication des menus

Comme pour le menu principal tout menu spécifique à un site dans une langue doit être dupliqué dans une autre langue avec l'acl correspondant. Il est quelques fois plus rapide de refaire le menu pour la nouvelle langue à zéro.

Duplication des modules

Tous les modules doivent aussi être dupliqués pour avoir la bonne langue et acl. On utilisera le bouton TRAITEMENT dans le gestionnaire de modules pour dupliquer le module en précisant:

  • la position
  • qu'on fait une copie et non un déplacement
  • la nouvelle ACL

Dans l'exemple suivant on copie un module français en position 7 et avec l'acl site1-fr en un nouveau module anglais dans la même position mais avec l'acl site1-en

multisites multilangues traitement module

multisites multilangues copie module

Traduction des labels

Au delà des contenus, menus et modules qui doivent être dupliqués dans la bonne langue, les labels des champs doivent être traduits avec le gestionnaire de substitution dans le menu back office Extensions / Langues :

multisites multilangues substitutions

Attention: il faut nommer les champs seblod sans accents ou caracteres spéciaux. Ainsi au lieu de nommer un champ Ville d'admission on le nommera villeadmission qui sera transformé par COM_CCK_VILLEADMISSION et qu'on viendra traduire dans le gestionnaire de substitutions.

On fera attention de choisir l'emplacement ADMINISTRATION qui permet, en cochant la case, de traduire la chaîne de caractères pour le front ET pour le back office.

multisites multilangues substitution admin

Listes SEBLOD multilangues

Les listes SEBLOD peuvent traiter plusieurs langues en même temps pour peu qu'on ajoute le filtre de langue dans l'onglet recherche. Ainsi une même liste affichera les actualités françaises ou anglaises selon la langue du site actuel.


Multisites multilangues liste seblod


Il faudra ensuite, par élément de menu venir surcharger le champ Article_language pour chaque langue:

Multisites multilangues element menu filtre langue

Associations

Par rapport à la gestion multilangues classique de Joomla! on perd ici l'association des éléments de menus et d'articles: quand on change de langue on est redirigé vers la page d'accueil.

 

Résultat final

Multisites multilangues resultat

 

Edition front end avec Hikashop et Virtuemart
Chasse aux bugs des templates Warp
Job board intégré à votre site Joomla!
Une agence web Joomla! au Drupagora
Extensions Joomla: accessibilité, menu vertical et réseaux sociaux
Virtuemart: flèches quantité ne fonctionnent pas
com_search joomla 2.5 recherche sans accents
Pulsar au JoomlaDay Israel 2016
E-commerce avec Seblod
Astuces PHP lazy load sous joomla seblod warp
Sommaire automatique pour Joomla
Soirée CMS open-source en PHP
Les solutions multi sites avec Joomla!
CMS Day: Joomla pour les projets du secteur public
JoomlaDay 2015: Pulsar y était!
Pulsar présente JOOMLA à AGORA CMS
Quelles extensions choisir pour son site joomla ?
Workflows généralisés avec Joomla! et Seblod (partie 4)
Transformer un article en contenu SEBLOD
GED Open Source simple pour les PME
Pulsar présente son expertise SEBLOD au JoomlaDay 2013
Joomla 4 : professionnalisation et performance
Super BreadCrumb for Joomla 1.5 1.6 & 1.7
Joomla! présent au salon AGORA CMS 2016
Pulsar et Joomla pour les sites évolués au JoomlaDay 2014
Workflow Joomla! évolué avec Seblod 2/4
Pulsar présente le projet pour la Sorbonne au JoomlaDay!
Pourquoi nous avons ajouté WordPress à notre offre
Joomla et les CCK
Les nouveautés de Joomla! 4
Sites multi langues mobiles avec Joomla et Seblod
Workflows évolués pour Joomla! avec Seblod 1/4
3 nouvelles extensions Joomla! de Pulsar dans la JED
Personnalisation du backoffice de Joomla!
Pulsar présente le JoomlaBusiness à l'AFUP
Correctif de Pulsar dans le routeur de Joomla
Ajouter Cufon à votre site Joomla!:
Joomla! meilleur CMS PHP Open Source
Pulsar, sponsor OR du JoomlaDay 2017
Astuce: suppression des éléments Seblod
Référencement naturel, cocons sémantiques et Joomla!
Import shipping pour hikashop
SOBI Pro: le menu principal ne s'affiche pas
JCEmediabox et css js compress
Elections 2016 ... le CMS Joomla! encore
Plugin merge css/js pour Joomla
Optimisation et vitesse de votre site Joomla!
Ajouter une icône d'édition dans une liste SEBLOD
Fenêtre coulissante avec Joomla et Seblod
Pulsar gagne l'appel d'offre de la Sorbonne
Comparaison des CCKs pour Joomla!
Les avantages de Joomla! face à Drupal
Pulsar présente le job board du nouveau site web Dynamique Emploi
Developpements pour la Bibliotheque Mazarine
L'agence Pulsar sponsorise le JoomlaDay 2015
Comprendre les droits et niveaux d'accès de Joomla!
Nouveau site de Pulsar avec Seblod!
Indiegogo: contrôle de version avancé avec SEBLOD
Advanced module manager et page d'accueil
Entrées grisées avec la mention [extrait] dans DOCMAN
Les solutions e-commerce avec Joomla!
Pulsar au JoomlaDay 2014: Chaine de production
JoomlaDay 2015: Joomla! pour les applis pro
Un nouveau routeur pour Joomla!
Chargement Joomla avec Mootools de Google
Pulsar présente le CMS Joomla! au club STARINUX
Pulsar sponsor du Joomladay
Joomla! fête ses 10 ans!
Multisites, multilangues et multidevices pour la SORBONNE
Pulsar, le JoomlaDay et Israël
Joomla meilleur cms open source 2011
Pulsar primé pour le site de la Sorbonne
Comprendre le stockage des données avec SEBLOD
Gestion Electronique de Documents sur mesure
Plugin de cache Joomla : les images ne s'affichent pas
Joomla! à nouveau élu meilleur CMS 2017
Ajouter le bouton DOCLINK avec Jevents et SobiPro
l'AFUJ exposant au salon Open Source Summit 2015
SEBLOD: supprimer un script à moindre coût
Override joomla du template 'category' lié à un menu
Développement multi sites avec Joomla et Seblod
SEBLOD et J2store au JoomlaDay Israël 2017
Pulsar sponsor OR du JoomlaBusiness 2015
Paramètres hikashop des items de menu
sh404SEF: URLs n'apparaissent pas
Pulsar developpe la passerelle Joomla LUCENE SOLR
Monétisez votre workflow avec Joomla!
Critère de correspondance pour la recherche SEBLOD
Workflow et formulaires faciles avec Joomla! et Seblod 3/4
Pulsar forme au CCK SEBLOD pour Joomla!
Pulsar certifie ses formateurs Joomla!