• [MODx] 10. Using Babel for Muti-languages support


    1. Go to 'Extras' -> download and install 'Babel'.

    2. Set up '.htaccess' file, currently, we set up three languages:

    find '# The Friendly URLs part' in your .htaccess / ht.access file, replace the existing code with:

    # The Friendly URLs part
    # redirect all requests to /de/favicon.ico and /nl/favicon.ico
    # to /favicon.ico
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(en|nl|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 ^(en|nl|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 ^(en|nl|de)?/?(.*)$ index.php?cultureKey=$1&q=$2 [L,QSA]

    Basicly, it just redirect to favicon, assets folder & index.php to root directory.

    Then if you have ht.access, you need to delete it and replace with .htaccess.

    3. Go to system setting, set 'Use Friendly URL' to 'YES':

    4. Create a new plugin call 'gateway':

    <?php
            if($modx->context->get('key') != "mgr"){
                /* grab the current langauge from the cultureKey request var */
                switch ($_REQUEST['cultureKey']) {
                    case 'nl':
                        /* switch the context */
                        $modx->switchContext('Nederlands');
                        break;
                    case 'de':
                        /* switch the context */
                        $modx->switchContext('Deutsch');
                        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']);
            }

    5. Then click 'System Events' tab, scroll down to 'OnHandleRequest', select the checkbox.

    6. Go to system -> 'Contexts', add two contexts 'Deutsch' & 'Nedelands':

    7. In Context, right click 'Web', select 'update context', then clicik 'context settings' tab:

    8. Add setting to it:

    7. In 'Access Control List', right click the '(anonymouse)', select 'Update user group':

    8. Reinstall the Babel to add de & nl into the language.

  • 相关阅读:
    redis sentinel搭建以及在jedis中使用
    redis入门指南书中概要
    mysql crash cource 书中实例
    图片服务器域名选择
    自行实现一个简易RPC框架
    webservice基础
    maven实战
    类似◇形的图形,四边都是对应的行数的数字。
    C 中随机数
    给特定的寄存器赋值,读特定的寄存器
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4227432.html
Copyright © 2020-2023  润新知