Установка

    Начало использования bLang

    1. Установка

    bLang можна установить как из репозитория (версия 1.0.1b), так и скачать архив из гитхаба.

    2. Настройка .htaccess

    После установки необходимо в htaccess перед # For Friendly URLs добавить код

    RewriteRule ^([a-z]{2})$ $1/ [R=301,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([a-z]{2})/(.*)$ index.php?q=$2&lang=$1 [L,QSA]

    3. Конфигурация bLang

    После заходим в модуль bLang на вкладку конфигурация и подгоняем конфиг под себя.

    • Указываем языки.
    • Указываем суфиксы полей для каждого языка.
    • Указываем главный язык

    Остальные настройки менее важные.

    4. Создание тв полей

    Переходим на вкладку Паметры.
    Сдесь можна создавать мультиязычние TV.
    Логика простая, вы создаете один параметр в модуле, а bLang сам автоматичиски делает дубль под каждый язык из учетом суфикса.

    Для удобства есть кнопка "Добавить стандартние параметры", она автоматом в модуле создаст основные поля такие как (titl,desc,pagetitle,description). После необходимо только привязать к шаблонам.

    5. Создание вкладок.

    bLang может автоматичиски определить, на какую вкладку необходимо закинуть тв поле, на основании значения из инпута "Нзавание вкладки".
    Если там записано seo.[lang] - это значит, что поле titl_en добавит на вкладку seo в секцию en.
    Если записано [lang], тв поле pagetitle_en будет на вкладке en. Если записа main, тв поле независимо от языка будет на вкладке main.

    Если вы используете managermanager, достаточно в чанк добавить код

    $bLangModuleObj = new \bLang\bLangModule($modx,'','');
    $bLangModuleObj->getMMRules();

    Если используете templateedit3, и вам нужно добавить вкладки после General

    $bLangModuleObj = new \bLang\bLangModule($modx,$modulePath,$moduleurl);
    $config = $bLangModuleObj->te3AddAfter('General',$config);

    Если используете templateedit3, и вам нужно просто получить список вкладок, которые bLang сгенерировал

    $bLangModuleObj = new \bLang\bLangModule($modx,$modulePath,$moduleurl);
    $bLangModuleObj->getTE3Rules();

    6. Словарь

    Все надписи которые есть в шаблоне, и их нужно переводить необходимо добавлять в словарь. Он находитсяс в модуле bLang на вкладке Словарь.
    В колонку название пишите ключ, по которому будете получать значение в шаблоне. В шаблоне можна получить через

    [(__name)]

    В сниппете

    $modx->getConfig('__name');

    7. Спец. переменные

    После инициализаци bLang в $modx->config записывает кроме словаря, несколько спец. полей

    [(_lang)] - ключе текущего языка [(_root)] - префикс урла для текущего языка [(_suffix)] - суфикс полей для текущего языка [(_en_url)] - урл текущей страницы для en языка

    8. Поля текущего ресурса и урл.

    Если включено "Автоматичиски подставлять поля в $modx->documentObject" и "Автоматичиски подставлять префикс (_root) для урлов", то в шаблоне, как и обычно можна писать

    [*pagetitle*]
    [~[*id*]~]