MleCMS (Module)

De Cms Made Simple France
Aller à : navigation, rechercher


Module Multilanguage CMS (MleCMS)

Fiche Technique


Idea.png
ATTENTION MODULE NON COMPATIBLE VERSION 2.x pour le moment, mais une version 2.x est en cours de développement à suivre sur la la forge et si besoin posez vos question sur le forum Modules,Tags



NOTA Pour information les notes sont ajoutées pour CMSms 1.11.x
Attention la version MleCMS 1.11.4 les gabarits (Flags ou autres) sont modifiés donc si vous faites une mise à jour, ne pas oublier de mettre à jour les templates du module par copier coller depuis le dossier MleCMS\templates ( gabarit Flags = orig_mle_template.tpl)

Dépendances

  • Le module CGExtensions
  • NOTA sur la version MleCMS 1.11.x : Le module ExtendedTools est requis
    ATTENTION depuis la version MleCMS 1.11.3 Cette extension n'est pas nécessaire


Tags

librairies

Présentation rapide du module

Le module MleCMS est une solution pour réaliser un site web multilangues pour CMS Made Simple, sans modification du code du noyau du CMS. Il permet la détection automatique de la langue et grâce aux "Snippets", "Blocs" et au "Traducteur" de pouvoir définir les textes en fonctions de langues.

Il est important d'avoir les langues (les langues autres que le fr_FR) nécessaires dans les dossiers \lang\ext des modules utilisés sur les pages.(exemple News, Printing, Search, …).
Attention les fichiers de langues xx_XX.nls.php (autres que le fr_FR.nls.php) doivent être dans le dossier/lib/nls en version CMSms 1.11.x

Nota : Configurer Administration du site / Paramètres globaux/ Langue par défaut de la partie publique du site : aucune sélection.

Issus de la documentation Anglaise


Issus de la traduction Française

guide d'installation installation-guide.html dans le dossier /modules/MleCMS

  • (option) lang="en_US" - Paramètre utilisé pour spécifier dans quelle langue afficher le module dans la partie publique. Ce paramètre n'est pas supporté ou utile pour tous les modules.
  • (option) lang="en_US" - Attention obsolète en version CMSms 1.11
  • (option) includeprefix="" - include prefix (pour action sur paramètre "lang")
  • (option) excludeprefix="" - exclude prefix (pour action sur paramètre "lang")
  • (option) name="" - Snippet ou nom du bloc
  • (option) template="" - gabarit (default Flags)


Exemple d'utilisation

But : réaliser un site Web en multilangues sous CMSMadeSimple (4 langues fr_FR ou en_US ou es_ES ou de_DE)
MleCMS Menu images.jpg

  • Installation de CGExtensions (rien à configurer - utilisation de cge_cache pour le cache MleCMS)
  • Installation de ExtendedTools requis sur la version MleCMS 1.11.x

-ATTENTION depuis la version 1.11.3 Cette extension n'est pas nécessaire

  • Installation de MleCMS


A - Configuration de MleCMS : (menu Contenu / Multilanguage MleCMS )

1 Options

En version MleCMS 1.11.4

  • Détection multilangues : Défaut
  • Détection de la langue : Rediriger à chaque niveau de la hiérarchie, Aucun, Rediriger vers le ré racine
  • Basculer les langues dans chaque hiérarchie : Oui (Oui/Non)
  • Restriction de la recherche MLE (uniquement pour la recherche dans les pages) : Non (Oui/Non)


2 Configuration multilangues
  • Dans le champ Nom : votre menu Français
  • Alias racine : fr (suivant la langue)
  • Extra : texte additionnel
  • Locale : sélectionner la langue
  • Drapeau : Parcourir : images pour sélectionner le drapeau correspondant au français.
  • Activer les informations pour Locale (pour utilisateurs avancés)

Mle4lang.jpg

Note :
Les icônes des drapeaux téléchargés se trouvent dans \uploads\images\MleCMS\ par défaut
La configuration est stockée dans la table cms_module_mlecms_config


3 Gabarit multilangues

par défaut : flags

4 Restera à configurer Snippets, Blocs, Traducteur, plus tard

Quelques informations sur le fonctionnement :

  • Snippets : donnera une balise du genre {MleCMS name="snippet_xxx"} qui pourra être utiliser dans les gabarits,
  • Blocs c'est l'équivalent de « Blocs de contenus globaux », donnera une balise du genre {MleCMS name="block_xxx"} qui pourra être utiliser dans les gabarits ou les contenus (pages...),
  • Traducteur il faut d'abord créer une balise du genre {translate text="ici"} dans les gabarits ou les contenus, puis aller dans cet onglet pour traduire le texte dans les langues.

Pour information les données :
Gabarit multilangues, Snippets, Blocs sont stockés en base de données dans la table cms_module_templates / module_name : MleCMS
Traducteur sont stockés dans le dossier \uploads\MleCMS dans des fichiers keys.xml, fr_FR.xml, en_US.xml….
sur la version MleCMS 1.11.x les données Traducteur sont stockés dans la base de données table siteprefs : MleCMS_mapi_pref_translations

les Variables :
- $lang_parent = lang="fr" ou lang="en" ou lang="es" ou lang="de"
- $lang_locale = " fr_FR ou en_US ou es_ES ou de_DE
Il est donc important d'avoir les langues nécessaires dans le dossier \lang\ext des modules (exemple News, Printing, search, ...) utilisés sur les pages et aussi dans le dossier \lib\nls pour afficher les texte des différentes langues.


B - Modification des gabarits (menu Disposition / Gabarits)

- Ajouter au tout début

{MleCMS action="init"}{process_pagedata}
- Modifier pour du xhtml
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
par

<html xmlns="http://www.w3.org/1999/xhtml"

xml:lang="{$lang_parent}" lang="{$lang_parent}">

Modifier pour du HTML5

<!DOCTYPE html>
<html  lang="{$lang_parent}">

A tester pour du HTML5

<!DOCTYPE html>
<html lang='{if isset($nls)}{$nls->htmlarea()}{/if}' dir='{if isset($nls)}{$nls->direction()}{/if}'>
<head>
<meta charset='{if isset($nls)}{$nls->encoding()}{/if}'>


Éventuellement pour le nom du site remplacer :

<h1>{sitename}</h1>
par
<h1>{translate text="sitename"}</h1>

Pour le lien vers la page d'accueil qui se trouve sur le logo

<div id="logo">        
     <h1>{cms_selflink dir="start" text="$sitename" page=$lang_parent}</h1>
</div>

Pour la recherche

{search lang=$lang_locale  submit='OK'}

Pour le fil d'ariane

{MleCMS action="langs"} {translate text="ici"} {breadcrumbs starttext=' ' 
root='Home' delimiter='»'}

Pour le fil d'ariane Version CMSms 1.11

{MleCMS action="langs"}{menu action='breadcrumbs' lang=$lang_locale}

les mots Ici et You are here sont traduit par défaut dans les fichiers de langues en_US.php et \ext\fr_FR.php de modules\MenuManager\lang à la ligne $lang['youarehere']

Pour les news

{news number='3' detailpage='news' lang=$lang_locale}

Pour le bouton impression

{print showbutton=true script=true  lang=$lang_locale}

ou

{cms_module module='CMSPrinting' showbutton=true script=true lang=$lang_locale}

Pour page suivante et précédente

{cms_selflink  lang=$lang_locale  dir="previous" }
{cms_selflink  lang=$lang_locale  dir="next"}
En plus la variable
{$lang_extra} = le texte du champ Extra défini en 2 Configuration multilangues

C - Création de la structure des pages

La structure des pages est importante. Dans le cas présenté ici

  • la page 1 est une page d'entrée du site Web
  • la page 2 est la page en français (alias de page fr)
  • la page 3 est la page en anglais (alias de page en)
  • la page 4 est la page en espagnol (alias de page es)
  • la page 5 est la page en allemenand (alias de page de)

MleCMS Mlepages.jpg

les pages parents seront donc pour "français" MleCMS Mlepages sp.jpg

Et donc ainsi de suite pour les pages parents des autres langues

D - Configurer les Snippets, Blocs, Traducteur

Les Snippets

MleCMS Mlesnip1.jpg

  • permet de paramétrer une texte pour chaque langue suivant l'exemple ci-dessous

MleCMS Mlesnip3.jpg

  • qui pourra être utiliser dans une page avec la balise {MleCMS name="snippet_versionTF"}
  • donc le détail snippet sur le site Web

MleCMS Mlesnip4.jpg

Les Blocs

MleCMS Mlebloc.jpg

  • permet de paramétrer une texte pour chaque langue suivant l'exemple ci-dessous

MleCMS Mleb annonce.jpg

  • qui pourra être utiliser dans un gabarit avec la balise {MleCMS name="block_annonce"}
  • donc le détail bloc sur le site Web

MleCMS pages annonce.jpg

Traducteur
  • il faut d'abord créer une balise du genre {translate text="ici"} dans les gabarits ou les contenus, puis aller dans cet onglet pour traduire le texte dans les langues.

Nota : CMS 1.11.x inutile de traduire ici Ces mots sont traduit par défaut dans les fichiers de langues du MenuManager MleCMS Mletranslate.jpg

  • qui pourra être utiliser dans un bloc de contenu global avec les balises
{translate text="contact"}<br>
{translate text="informations"}<br>
{translate text="plansite"}
  • donc l'effet traducteur sur le site Web

MleCMS Mletranslatesite.jpg


Additif : Menus avec images

  • Les fichiers des images sont dans \uploads\images

MleCMS Images.jpg

  • Configuration : Paramètres globaux le chemin des images par défaut

MleCMS Siteprefs.jpg

  • Dans le menu choisi dans ce cas le gabarit menu accessible_simple_navigation.tpl, ce gabarit menu est modifié de la façon suivante par ajout de
{if $node->image != ''}  <img src="{$node->image}" alt="" />{/if}

Note pour Version CMSms 1.11 - attention modification

{if isset($node->image) && $node->image != ''}  <img src="{$node->image}" alt="" />{/if}
  • Dans le gabarit de la page, modification de la balise menu
  {menu template='accessible_simple_navigation.tpl' number_of_levels='1'}
  • Dans la(les) page ou se trouvent le menu avec image, ajouter dans l'onglet "Options"

MleCMS Editcontent.jpg

  • et voila le menu

MleCMS Menu images.jpg


Sys Info.png
Un soucis sur cette page ?
Vous pouvez à tout moment signaler une erreur, un oublis ou une nouveauté sur cette page en cliquant à droite sur le bouton rouge "commentaires"