We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 36931
    • 206 Posts
    Bonjour à tous,

    Me revoilà avec MODx et j'essaie d'installer Babel avec revo 2.5. (trois langues : fr, it, de)
    J'avais deja installé Babel sous Revo 2.2 mais le manager à changer et je ne suis plus sure de moi, car les tuto montre un version antérieur à 2.5

    J'ai un doubte car mon menu langue ne s'affiche pas et je peine à trouver la raison

    J'ai installé babel selon mes notes et un tuto comme ceci:
    https://anyscreensize.com/blog/modx-multilingual

    Premièrement
    J'ai édité mon fichier htaccess et j'ai fais ces modifications
    RewriteEngine On
    RewriteBase /
    
    # Rewrite www.domain.com -> domain.com -- used with SEO Strict URLs plugin
    RewriteCond %{HTTP_HOST} .
    RewriteCond %{HTTP_HOST} !^www.mywebsite\.ch [NC]
    RewriteRule (.*) http://www.mywebsite.ch/$1 [R=301,L]
    
    # BABEL
    # redirect all requests to /de/favicon.ico and /nl/favicon.ico
    # to /favicon.ico
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(fr|it|de)/favicon.ico$ favicon.ico [L,QSA]
    							  
    # redirect all requests to /de/assets* and /nl/assets* to /assets*
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(fr|it|de)/assets(.*)$ assets$2 [L,QSA]
    							 
    # redirect all other requests to /de/* and /nl/*
    # to index.php and set the cultureKey parameter
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(fr|it|de)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]
    

    J'ai aussi commenter ces lignes
    # The Friendly URLs part
     
    # 3 line are comment because of babal
    #RewriteCond %{REQUEST_FILENAME} !-f
    #RewriteCond %{REQUEST_FILENAME} !-d
    #RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
    


    Deuxièment
    J'ai créé 2 nouveau contexte (un pour l'allemand, l'autre pour l'italien (voir les photos attachées)
    (site_start doivent etre changé en fonction de la page traduite correspondant à la page d'acceuil)

    Troisièmement
    J'ai ajouté un plugin 'gateway' avec ce code et j'ai remplacé 'nl' avec 'it' et 'en' avec 'de'
    <?php
    			if($modx->context->get('key') != "mgr"){
    				/* grab the current langauge from the cultureKey request var */
    				switch ($_REQUEST['cultureKey']) {
    					case 'it':
    						/* switch the context */
    						$modx->switchContext('it');
    						break;
    					case 'de':
    						/* switch the context */
    						$modx->switchContext('de');
    						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']);
    			}
    

    J'ai aussi sélectionné 'OnHandleRequest' dans 'system event'


    Quatrièmement
    J'ai installé Babel et j'ai sauvé 'web,it,de' comme Contect key dans l'option, avant de cliquer sur install

    Finallement
    J'ai ajouté ceci dans mon template et ca ne marche pas
    <ul>[[BabelLinks]]</ul>
    <ul>[[BabelLinks? &showUnpublished=`1`]]</ul> <!-- for testing -->
    





    Question 1
    Pourquoi, mon menu langue n'est pas affiché????


    Question 2
    Es-ce que j'ai oublié quelque chose?
    Es-ce que je dois me préoccuper de 'Load only'? Il semble que pour revo 2.5, c'est fait automatiquement. Je l'ai vu sous 'anonymouse | 9999 | local only' (voir image attachée)


    Merci pour vos lumières

    Cheers
    [ed. note: pierrot1010 last edited this post 7 years, 6 months ago.]
      • 36931
      • 206 Posts
      J'ai aussi un TV babelLanguageLinks a qui j'ai donné acces à mon template
        • 36931
        • 206 Posts
        Je pense que le problème vient d'ici

        [[BabelLinks? &tpl=`babelLink`]]

        In this Chunk you have access to the following placeholders:
        - [[+url]]:
        Url to linked translation (or site_url of specific language if there
        is no translated resource available).
        - [[+cultureKey]]:
        Culture key of translation (e.g en, de, fr oder es).
        You may use the babel lexicon to display the language's name:
        [[%babel.language_[[+cultureKey]]? &topic=`default` &namespace=`babel`]]
        - [[+active]]:
        If link points to a resource of the current active language (context)
        this placeholder is set to the active CSS class name specified by the
        &activeCls parameter (default=active). Otherwise this placeholder is empty.
        - [[+id]]:
        ID of tranlated resource. If no translation is available this placeholder
        is empty ('').
        Par exemple ceci
        <li><a href="[[+url]]" class="[[+cultureKey]][[+active:notempty=` [[+active]]`]]">[[%babel.language_[[+cultureKey]]? &topic=`default` &namespace=`babel`]]</a></li>

        ne m'affiche rien : [[+cultureKey]] n'affiche rien dans class="", tout comme les autres ..

        J'ai résolu mon problem en créant un chunk avec ceci
        <a href="[[~[[BabelTranslation? &contextKey=`it`]]]]"> it</a> | 
        <a href="[[~[[BabelTranslation? &contextKey=`de`]]]]"> de</a> | 
        <a href="[[~[[BabelTranslation? &contextKey=`web`]]]]">fr</a> 
        [[+active]]
        

        mais ca ne résoud comme meme pas mon problem, car je ne peux pas utiliser [[+active]] car il ne retourne aucune valeur.

        Une petite idée [ed. note: pierrot1010 last edited this post 7 years, 6 months ago.]
          • 36931
          • 206 Posts
          Bonjour,
          Es-ce quelqu'un pourrait m'aider, je suis toujours bloqué shocked(