Site Web multilingue sous CMSMadeSimple Tutoriel SANS le module le MleCMS



Documents pareils
Module : programmation site Web dynamique Naviguer entre les pages via site map

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

CMS Made Simple Version 1.11.x voir note Tutoriel utilisateur Récapitulatif Administration

CMS Made Simple Version 1.4 Jamaica. Tutoriel utilisateur Récapitulatif Administration

Projet en nouvelles technologies de l information et de la communication

Panorama des CMS open sources. Sylvain Ferrand, CMAP École Polytechnique Journées Mathrice, Poitiers, 19 mars 2008

INFORMATIONS ET INSTALLATION DU THEME CENATA RESPONSIVE

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

D origine destiné à la conception de blog, WordPress est devenu l outil incontournable dans la liste des systèmes de gestion de contenus..

Gestion Électronique de Documents et XML. Master 2 TSM

EXTENSION WORDPRESS. Contact Form 7. Proposé par :

RAPPORT DE STAGE. Terrasse Hugo 1/12

Introduction aux concepts d ez Publish

Tour d horizon des CMS. Content Management System

REX gros projets Drupal. Drupal Camp Toulouse Novembre - +qdelance

Construction d un Site Internet Dynamique avec Joomla René-Yves Hervé, Ph.D.

25 mars. Tutoriel sur Laravel. Préparé par : Lydiane Beaulne-Bélisle. Ceci est un tutorial qui montre comment débuter avec le Framework PHP Laravel.

SYSTÈMES D INFORMATIONS

Programmation Internet Cours 4

Proxies,, Caches & CDNs

Par KENFACK Patrick MIF30 19 Mai 2009

Sommaire. 1. Présentation de WordPress. 2. Hébergement et installation. 3. Prise en main, ajouter des contenus

Drupal (V7) : principes et petite expérience

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

Les outils de SEO (Référencement naturel) et les Sites SharePoint Public sur Office 365

Formation HTML / CSS. ar dionoea

Comparatif de serveurs de contenus (CMS Content Management Server)

Démonstration de la mise en cache via HTML 5 sur iphone

Travaux dirigés n 10

CMS Open Source : état de l'art et méthodologie de choix

RESUME DE CARRIERE. Alice JULIENNE. 23 ans Nationalité Française Développeur Web Front-End. Compétences

TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZURE

TP 5 Les CMS, la forme et le fond Internet et Outils (IO2)

STID 2ème année : TP Web/PHP

Initiation à html et à la création d'un site web

Projet Java EE Approfondi

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

MACROMEDIA DREAMWEAVER

Normes techniques 2011

Formation Webmaster : Création de site Web Initiation + Approfondissement

Gérer une forte charge avec ez Publish Obtenir la meilleure réactivité de publication. Solutions natives ez. Solution spécifique.

INTRODUCTION AU CMS MODX

GOOGLE ANALYTICS. Ajout du code de suivi sur PowerBoutique. Ajout du code de suivi Google Analytics. Page 1 / 7 TUTO / GOOGLE ANALYTICS

RÉF : 2002/COFAX/LP V1.0

Tutoriel Drupal version 7 :

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

Point de départ état des lieux. Plus de 200 sites web Internet Périmètre institutionnel = site national + 21 sites des centres de recherche

Optimiser pour les appareils mobiles

Architecture Multi-Niveaux

ECLIPSE ET PDT (Php development tools)

Inscription de votre site sur Google Configuration du sitemap et de Webmaster Tools pour PrestaBox

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Manuel Utilisateur. Boticely

Optimiser moteur recherche

Devis pour la création de votre site Internet

Manuel d utilisation du site web de l ONRN

Content Management System. bluecube. Blue Cube CMS V4.3 par Digitalcube

Académie Google AdWords

Guide de création de site web optimisé

Pack Fifty+ Normes Techniques 2013

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Le serveur web Windows Home Server 2011

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

PLATEFORME DE GESTION DE CONGRÈS SCIENTIFIQUES

Programmation Web TP1 - HTML

Joomla! Création et administration d'un site web - Version numérique

Séance d ED n 5 : HTML et JavaScript

Le CMS Content Manager

Tutoriel de démarrage rapide destiné aux EDITEURS

Les sites web avec NVU

SITE I NTERNET. Conception d un site Web

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Futuristic Template Building (FTB1 FR)

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

Créer une base de données vidéo sans programmation (avec Drupal)

PPE Installation d un serveur FTP

Maîtrisez votre Navigateur

Manuel : Comment faire sa newsletter

SPIP. développement de squelettes. Partie 3. Patrick VINCENT

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

creer votre site internet en html/css

PLATEFORME DE GESTION DE CONGRÈS SCIENTIFIQUES. 12 mars 2015

Gestion du cache dans les applications ASP.NET

Extended communication server 4.1 : VoIP SIP service- Administration

Guide d installation en 10 étapes...

HTML. Notions générales

Tutoriel : Feuille de style externe

Dévéloppement de Sites Web

Mysql avec EasyPhp. 1 er mars 2006

LE CONCEPT DU CMS CHAPITRE 1

SOUTENANCE ORALE RAPPORT DE PROJET D INFORMATIQUE

WebSSO, synchronisation et contrôle des accès via LDAP

Première coupe : Introduction à la plateforme Java EE JAVA JAVA. Introduction à la plateforme Java EE. Introduction à la plateforme Java EE

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

UN SITE WEB RESPONSIVE EN UNE HEURE?

RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing

Transcription:

Site Web multilingue sous CMSMadeSimple Tutoriel SANS le module le MleCMS - 1- le multilingue en version 1.12-2- le multilingue en version.2.0 Un peu d'histoire. La version 2 de CMSMS étant en RC1 au moment de ce tutoriel et au vue de avancement de la version 2 du module MleCMS, j'ai décidé de me passer de ce module. Après différente recherche sur les possibilité existantes, j'ai trouvé une méthode bien décrite par Rolf sur sa page Multilingual template for CMS Made Simple (j ai fais de nombreuses modifications) Mes critères Partir d'une version CMSMS 1.12 avec MleCMS pour modifier un site en 4 langues sans utiliser ce module avec Objectif pouvoir faire une mise à jour (avec le moins de modifications possibles) en version CMSMS version 2. Possibilité d utiliser ou non les Pretty URLs Après différents tests en aller-retour en version 1.12 et 2, je vais décrire mes solutions. La structure des pages du site Web 1 Page de démarrage (index.php) alias de page inter 2.Accueil - alias de page fr) 2.1 page 1 - alias de page xxxx 2.2 page 2 - alias de page xxxx 3. Home (alias de page en) 3.1 page 1- alias de page xxxx 3.2 page 2 - alias de page xxxx 4. Presentacióne (alias de page es) 4.1 page 1 - alias de page xxxx 4.2 page 2 - alias de page xxxx 5. Startseitee (alias de page de) 5.1 page 1 - alias de page xxxx 5.2 page 2 - alias de page xxxx Nota : Dans Paramètres globaux / Paramètres généraux/langue par défaut de la partie publique du site : Aucune - 1- le multilingue en version 1.12 Modules utilisés Standard de la version 1.12.x + CGSimpleSmarty 1.9 http://dev.cmsmadesimple.org/projects/cgsimplesmarty sera utilisé seulement les fonctions : get_root_alias, get_parallel_page 1- Créer nouveau gabarit avec comme nom = blank et contenant uniquement la balise {content} 2- La Page de démarrage (index.php) redirigera vers la page 2, 3, 4 ou 5 suivant la langue détectée du navigateur - gabarit = blank - contenu SANS WYSIWYG : {browser_lang accepted='fr,en,es,de' default='en' assign='browser_lang'} {redirect_page page=$browser_lang} multilangues_cmsms.odt JCE Maj : 19/12/2015 1 / 6

3- Blocs de contenus globaux avec les drapeaux nom = flags SANS WYSIWYG Pour afficher les drapeaux des différentes langues et un lien vers la page de même langue <div id="flags"> {cms_selflink page={cgsimple::get_parallel_page('fr', $page_alias)} image='uploads/images/./fr_fr.png' imageonly=1 alt='version Française'} {cms_selflink page={cgsimple::get_parallel_page('en', $page_alias)} image='uploads/images/./en_us.png' imageonly=1 alt='english version'} {cms_selflink page={cgsimple::get_parallel_page('es', $page_alias)} image='uploads/images/s/es_es.png' imageonly=1 alt='español Version'} {cms_selflink page={cgsimple::get_parallel_page('de', $page_alias)} image='uploads/images//de_de.png' imageonly=1 alt='deutschsprachige Version'} </div> 4 Blocs de contenus globaux nom = langsplus SANS WYSIWYG Afin de pouvoir afficher le traduction des modules et cmslinks $rootlang est la langue obrenue avec cgsimple::get_root_alias()dans le gabarit {if $rootlang == "fr"} {assign var="langxx_xx" value="fr_fr"} {/if} {if $rootlang == "en"} {assign var="langxx_xx" value="en_us"} {/if} {if $rootlang == "es"} {assign var="langxx_xx" value="es_es"} {/if} {if $rootlang == "de"} {assign var="langxx_xx" value="de_de"} {/if} dans les gabarits on aura par exemple: {cms_breadcrumbs root='home' lang=$langxx_xx} {search submit='ok' lang=$langxx_xx} {cms_selflink dir="previous" lang=$langxx_xx} {cms_selflink dir="next" lang=$langxx_xx} 5 Blocs de contenus globaux pour le footer (autant que de langues) footer_fr votre bas de page Fr footer_en votre bas de page En footer_es votre bas de page Es footer_de votre bas de page De 6 Blocs de contenus globaux pour les chaînes de langues (autant que de langues) ici des exemples languagestrings_fr {* Global langstring {assign var='strlgn_xx' value='xx'*} {assign var='strlgn_sitename' value=xxxxxxxxx'} {assign var='strlgn_plansite' value='plan du site'} languagestrings_en {assign var='strlgn_plansite' value='site map'} languagestrings_es {assign var='strlgn_contact' value='contacto'} {assign var='strlgn_informations' value='información'} multilangues_cmsms.odt JCE Maj : 19/12/2015 2 / 6

{assign var='strlgn_plansite' value='mapa del sitio'} languagestrings_de {assign var='strlgn_contact' value='kontakt'} {assign var='strlgn_informations' value='informationen'} {assign var='strlgn_plansite' value='wegweiser'} dans les gabarits ou les pages les chaînes seront utiliser la manière suivante {$strlgn_sitename} 7 Les gabarits pour les pages (adapter suivant les besoins je note ici que les principales balises) {strip} {process_pagedata} {assign var='rootlang' cgsimple::get_root_alias()}{*page alias root*} {global_content name="languagestrings_`$rootlang`"} {* pour exemple $strlgn_sitename *} {global_content name='langsplus'} {* langues dans les modules *} {/strip} <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1- transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{$rootlang}"> <head>. <title>{title} - {$strlgn_sitename}</title> </head> <body> <h2 class="headright">{$strlgn_sitename}</h2> <h1>{cms_selflink page=$rootlang text='$sitename'}</h1>. {menu template='accessible_simple_navigation.tpl' number_of_levels='1'} <div id="search"> {*recherche *} {search submit='ok' lang=$langxx_xx} <div class="breadcrumbs">{* fil d'ariane *} {global_content name='flags'} {cms_breadcrumbs root='home' lang=$langxx_xx} {menu template='accessible_simple_navigation.tpl' start_level='2' collapse='1'} {cms_selflink lang=$langxx_xx dir="previous"} {cms_selflink lang=$langxx_xx dir="next"} <div id="footer"> {global_content name="footer_`$rootlang`"} </body> </html> 8 Dans les pages ajouter les chaînes de langues au format {$strlgn_montexte} multilangues_cmsms.odt JCE Maj : 19/12/2015 3 / 6

- 2- le multilingue en version.2.0 Nota les premiers tests on été effectués avec la RC1 et Smarty 3.1.27, puis il y a eu un retour arrière en Smarty 3.1.16 (ce qui a entraîné des modifications des gabarits) en rouge le texte supprimé et en vert les ajouts par rapport à la version 1.12 Modules utilisés Standard de la version 2.0 + CGSimpleSmarty 2.0 http://dev.cmsmadesimple.org/projects/cgsimplesmarty (un bug http://dev.cmsmadesimple.org/bug/view/10607 sera corrigé en V2.x) sera utilisé seulement les fonctions get_root_alias, get_parallel_page 1- Créer nouveau gabarit avec comme nom = blank et contenant uniquement la balise {content} ensuite Créer nouveau Designs avec comme nom = blank Gabarits attachés blank 2- La Page de démarrage (index.php) redirigera vers la page 2, 3, 4 ou 5 suivant la langue détectée du navigateur - Design= blank et gabarit = blank - contenu SANS WYSIWYG = {browser_lang accepted='fr,en,es,de' default='en' assign='browser_lang'} {redirect_page page=$browser_lang} 3- Gabarits Core::Générique nom = flags SANS WYSIWYG Pour afficher les drapeaux des différentes langues et un lien vers la page de même langue <div id="flags"> {cms_selflink page={cgsimple::get_parallel_page('fr', $page_alias)} image='uploads/images/./fr_fr.png' imageonly=1 alt='version Française'} {cms_selflink page={cgsimple::get_parallel_page('en', $page_alias)} image='uploads/images/./en_us.png' imageonly=1 alt='english version'} {cms_selflink page={cgsimple::get_parallel_page('es', $page_alias)} image='uploads/images/s/es_es.png' imageonly=1 alt='español Version'} {cms_selflink page={cgsimple::get_parallel_page('de', $page_alias)} image='uploads/images//de_de.png' imageonly=1 alt='deutschsprachige Version'} </div> 4 Gabarits Core::Générique nom = langsplus A SUPPRIMER dans la cas de la mise à jour de v 1.12 vers 2.x 5 Gabarits Core::Générique pour le footer (autant que de langues) footer_fr votre bas de page Fr footer_en votre bas de page En footer_es votre bas de page Es footer_de votre bas de page De 6 Gabarits Core::Générique pour les chaînes de langues (autant que de langues) ici des exemples Pour chaque gabarit : - soit en fin de chaque ligne ajouter scope=global - Exemple {assign var='strlgn_xx' value='xx' scope=global} - soit garder la ligne {assign var='strlgn_xx' value='xx} Et dans ce cas ajouter à la fin du gabarit {share_data scope=parent vars='strlgn_sitename,strlgn_contact,.} avec toutes les variables des lignes multilangues_cmsms.odt JCE Maj : 19/12/2015 4 / 6

languagestrings_fr {* Global langstring {assign var='strlgn_xx' value='xx' - If V2 add {share_data scope=parent vars='strlgn_'} *} {assign var='strlgn_sitename' value=xxxxxxxxx'} {assign var='strlgn_plansite' value='plan du site'} {assign var='strlgn_dirprevious' value='page précédente : '} {assign var='strlgn_dirnext' value='page suivante : '} {assign var='strlgn_youarehere' value='ici '} {assign var='strlgn_searchtext' value='recherche.'}.,strlgn_dirprevious,strlgn_dirnext,strlgn_youarehere,strlgn_searchtext'} languagestrings_en {* Global langstring {assign var='strlgn_xx' value='xx' - If V2 add {share_data scope=parent vars='strlgn_'} *} {assign var='strlgn_plansite' value='site map'} {assign var='strlgn_dirprevious' value='vorherige Seite:'} {assign var='strlgn_dirnext' value='nächste Seite:'} {assign var='strlgn_youarehere' value='sie sind hier'} {assign var='strlgn_searchtext' value='suche'}.,strlgn_dirprevious,strlgn_dirnext,strlgn_youarehere,strlgn_searchtext'} languagestrings_es {* Global langstring {assign var='strlgn_xx' value='xx' - If V2 add {share_data scope=parent vars='strlgn_'} *} {assign var='strlgn_contact' value='contacto'} {assign var='strlgn_informations' value='información'} {assign var='strlgn_plansite' value='mapa del sitio'} {assign var='strlgn_dirprevious' value='pagina previa:'} {assign var='strlgn_dirnext' value='pagina siguiente:'} {assign var='strlgn_youarehere' value='usted está aqui'} {assign var='strlgn_searchtext' value='búsqueda'}.,strlgn_dirprevious,strlgn_dirnext,strlgn_youarehere,strlgn_searchtext'} languagestrings_de {* Global langstring {assign var='strlgn_xx' value='xx' - If V2 add {share_data scope=parent vars='strlgn_'} *} {assign var='strlgn_contact' value='kontakt'} {assign var='strlgn_informations' value='informationen'} {assign var='strlgn_plansite' value='wegweiser'}. {assign var='strlgn_dirprevious' value='vorherige Seite:'} {assign var='strlgn_dirnext' value='nächste Seite:'} {assign var='strlgn_youarehere' value='sie sind hier'} {assign var='strlgn_searchtext' value='suche'}.,strlgn_dirprevious,strlgn_dirnext,strlgn_youarehere,strlgn_searchtext'} 7 Les gabarits pour les pages (adapter suivant les besoins je note ici que les principales balises) multilangues_cmsms.odt JCE Maj : 19/12/2015 5 / 6

{strip} {process_pagedata} {assign var='rootlang' cgsimple::get_root_alias()} {assign var='rootlang' value=cgsimple::get_root_alias() scope=global}{*page alias root*} {global_content name="languagestrings_`$rootlang`"} {* pour exemple $strlgn_sitename *} {global_content name='langsplus'} {* langues dans les modules *} {/strip} <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1- transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{$rootlang}"> <head> {global_content name="languagestrings_`$rootlang`"}. <title>{title} - {$strlgn_sitename}</title> </head> <body> {global_content name="languagestrings_`$rootlang`"} <h2 class="headright">{$strlgn_sitename}</h2> <h1>{cms_selflink page=$rootlang text='$sitename'}</h1>. {Navigator menu template='accessible_simple_navigation.tpl' number_of_levels='1'} <div id="search"> {*recherche *} {search submit='ok' lang=$langxx_xx searchtext={$strlgn_searchtext}} <div class="breadcrumbs"> {* fil d'ariane *} {global_content name='flags'} {cms_breadcrumbs root='home' lang=$langxx_xx} {global_content name='flags'} {*cms_breadcrumbs root='home'*} {nav_breadcrumbs start_text={$strlgn_youarehere} root=-1} {Navigator menu template='accessible_simple_navigation.tpl' start_level='2' collapse='1'}. {cms_selflink lang=$langxx_xx label={$strlgn_dirprevious} dir="previous"} {cms_selflink lang=$langxx_xx label={$strlgn_dirnext} dir="next"} <div id="footer"> {global_content name="footer_`$rootlang`"} </body> </html> 7a Gabarits Core::Générique Search Form Sample SUPPRIMER le label <label for="{$search_actionid}searchinput">{$searchprompt}: </label> la traduction de searchprompt ne pouvant être réalisée, «searchtext» informe dans la zone de recherche 8 Dans les pages ajouter les chaînes de langues au format {$strlgn_montexte} Pour information : - La version 1.12.x. (1.12.1) fonctionne en production depuis octobre 2015 sur la page http://tracfoil.free.fr/tracplane/ - La version 2.x (2.1.0) fonctionne en production depuis fin octobre 2015 sur la page http://tracfoil.com/tracplane/ Document venant de http://jc.etiemble.free.fr/abc JC Etiemble jcpointetiemble_at_freepointfr multilangues_cmsms.odt JCE Maj : 19/12/2015 6 / 6