bLang можна установить как из репозитория (версия 1.0.1b), так и скачать архив из гитхаба.
После установки необходимо в 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]
После заходим в модуль bLang на вкладку конфигурация и подгоняем конфиг под себя.
Остальные настройки менее важные.
Переходим на вкладку Паметры.
Сдесь можна создавать мультиязычние TV.
Логика простая, вы создаете один параметр в модуле, а bLang сам автоматичиски делает дубль под каждый язык из учетом суфикса.
Для удобства есть кнопка "Добавить стандартние параметры", она автоматом в модуле создаст основные поля такие как (titl,desc,pagetitle,description). После необходимо только привязать к шаблонам.
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();
Все надписи которые есть в шаблоне, и их нужно переводить необходимо добавлять в словарь. Он находитсяс в модуле bLang на вкладке Словарь.
В колонку название пишите ключ, по которому будете получать значение в шаблоне.
В шаблоне можна получить через
[(__name)]
В сниппете
$modx->getConfig('__name');
После инициализаци bLang в $modx->config записывает кроме словаря, несколько спец. полей
[(_lang)] - ключе текущего языка [(_root)] - префикс урла для текущего языка [(_suffix)] - суфикс полей для текущего языка [(_en_url)] - урл текущей страницы для en языка
Если включено "Автоматичиски подставлять поля в $modx->documentObject" и "Автоматичиски подставлять префикс (_root) для урлов", то в шаблоне, как и обычно можна писать
[*pagetitle*]
[~[*id*]~]