Перенесли логику мультиязычности с Laravel, детальней как это в Laravel читаем тут: https://laravel.com/docs/8.x/localization, а как это в Evo читаем ниже
В целом все очень похоже на решение bLang https://github.com/bumkaka/bLang так же можно глянуть видео как работали в более ранних версиях : https://www.youtube.com/watch?v=FVX63RRYsU4
Добавляем строку перед: # 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]
Это даст возможность использовать нам конструкцию вида site.com/en/alias
/core/custom/config/app/locale.php
<?php
if(isset($_GET['lang'])){
return $_GET['lang'];
}else{
return 'az';
}
После чего у нас будет доступна переменная: config('app.locale')
В пакете в сервиспровайдере добавляем инициализацию пути к папке с переводами
public function boot()
{
\Lang::addNamespace('custom', MODX_BASE_PATH.'/core/custom/packages/main/lang');
}
Далее создаем эту папку и складываем туда переводы, как это указано в документации Laravel B можем использовать у себя в проекте;
\Lang::get('custom::custom.translate_1');
Или в Blade
@lang('custom::custom.translate_1')
На текущий момент эти 2 функции получаем установив bLang, но в планах создать отдельный пакет который будет решать эти вопросы.