Le Blog



[MODX] Installer Babel pour un site multilangue
Monday, 26 Mar 2012 14:37
Bonjour,
Voici un aide mémoire pour l'installation de Babel afin de rendre un site multilange
  1. Créer un nouveau contextt "en" (System->Contexts)
  2. Editer le context "en" et créer 3 parapères (Context setting) : key : base_url, Name : Site Url, Value : en, Area lexicon entry : Lexicon and Language | key : site_url, Name : Site Url, Value : http://www.monsite.ch/en/, Area lexicon entry : Lexicon and Language | key : cultureKey, Name : Culture key, Value : en, Area lexicon entry : Lexicon and Language
  3. Enditer le context "web" et faite la même chose mais remplace les lettres "en" par " fr
  4. Accorder le "Load only" la politique d'accè pour tous vos contextes au groupe anonyme pour permettre à vos utilisateurs de charger les contextes
  5. Créé un plug et nommer la "gateway" et coller le code ci-dessous, puis aller dans l'onglet "sytsem event" et cocher "OnHandleRequest"
  6. Dans votre template, coller ceci à l'endroit ou vous voulez voir les drapeaux *[BabelLinks? &showUnpublished=`0` &tpl=`LanguageFlags`]° (remplacer le * par un [ et le ° par ])
  7. Créer un chunk "LanguageFlags" et coller le code ci-dessous.
  8. Installer le package if
  9. Editer le TV "babelLanguageLinks" et donner lui auccès aux templates de votre site
  10. Installer Babel et n'oubliez pas de spécifier les contextes dans le champs l'option de configuration (expl: web,en)
  11. Modifier votre fichier .htacess
Plugn "gateway":
<?php
if($modx->context->get('key') != "mgr"){
    /* grab the current langauge from the cultureKey request var */
    switch ($_REQUEST['cultureKey']) {
        case 'en':
            /* switch the context */
            $modx->switchContext('en');
      break;
        default:
            /* Set the default context here */
            $modx->switchContext('web');
            break;
    }
    /* unset GET var to avoid
     * appending cultureKey=xy to URLs by other components */
  unset($_GET['cultureKey']);
}


chunk "LanguageFlags"
*[IF? &subject=`*[+id]°` &operator=`notempty` &then=`
<a href="*[+url]°" class="langue_flag *[+cultureKey]° *[+active:notempty=` *[+active]°`]°"><img src="*[++site_url]°manager/templates/eleo/images/*[+cultureKey]°.gif" title="*[%babel.language_*[+cultureKey]°? &topic=`default` &namespace=`babel`]°" /></a>
`]°

(Remplacer les * par des [ et les ° pas des ] )


Ajouter ceci dans votre fichier .htaccess
# Added on due to Babel configuration
# The Friendly URLs part
# detect language when requesting the root (/)
#RewriteCond %{HTTP:Accept-Language} !^fr [NC]
#RewriteRule ^$ fr/ [R=301,L]

#RewriteCond %{HTTP:Accept-Language} !^en [NC]
#RewriteRule ^$ index.php?id=8 [R=301,L]
 
# redirect all requests to /en/favicon.ico and /de/favicon.ico
# to /favicon.ico
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(fr|en)/favicon.ico$ favicon.ico [L,QSA]
 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(fr|en)/manager/templates/eleo(.*)$ manager/templates/eleo$2 [L,QSA]
 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(fr|en)/images(.*)$ images$2 [L,QSA]
 
# redirect all requests to /fr/assets* and /en/assets* to /assets*
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(fr|en)/assets(.*)$ assets$2 [L,QSA]
 
# redirect all other requests to /fr/* and /en/*
# to index.php and set the cultureKey parameter
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(fr|en)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]
# END OF Add du to Babel configuration...


Attention, vous devez aussi commenter ces lignes qui existent déjà:
# This has been commented on the 16-june-2011 due to Bebl configuration
## # The Friendly URLs part
## RewriteCond %{REQUEST_FILENAME} !-f
## RewriteCond %{REQUEST_FILENAME} !-d
## RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]





(Pas de commentaire(s)...)
Laisser un commentaire
* Nom
* Email (ne sera pas affiché)
*
Quel est le caractère à la position 9 ?
wAgMxdBBvgWqWU
Réponse :
* Anti-spam
* - Champs obligatoire