
Из большого количества модулей yii2 позволяющих реализовать мультиязычность веб системы, я выбрал Yii2 — Translate Manager. Он мне показался самым то что надо. Немного поколдовав с конфигами, удалось запустить. Сделал перевод, перезапускаю страницу, не работает. Показывает на исходном языке. Итак далее опишу как это лечится:
- Во первых, нужно отключить кэширование переводов, хотя бы на время выполнения перевода.
'enableCaching' => false
- Отчистить тот кэш что собрался в runtime\cache
- Не использовать категорию app, так как это системная и она берется из файловых источников. Я использовал main — Lx::t(‘main’, ‘increase your profit!’);
Вот и все.
Приведу на всякий случай пример своего конфига
'i18n' => [ 'translations' => [ '*' => [ 'class' => 'yii\i18n\DbMessageSource', 'db' => 'db', 'sourceLanguage' => 'en-US', // Developer language 'sourceMessageTable' => '{{%language_source}}', 'messageTable' => '{{%language_translate}}', 'cachingDuration' => 0, 'enableCaching' => false, //'basePath'=>'@backend/messages', ], ], ],