Всем привет! Вопрос заключается в следующим. Есть базовый класс BaseYii в Yii2. В этом классе содержится метод t(). Сейчас я использую yii\i18n\DbMessageSource для переводов, которые хранятся в базе. Перевод можно получиться при помощи вызова метода t() с соответствующими аргументами.
Задача заключается в том, чтобы дописывать в базу переводы, если их еще там нету, при вызове метода t(). Например, вызываем t('category', 'title'), оно само должно проверять есть ли перевод в базе и дописывать его, если его там нету. Как я могу это делать, если я хочу вызывать все тот же Yii::t() в своем приложении?
Простите, если не совсем точно описал, это мой первый вопрос.
Можно переопределить метод создав свой класс, подключив его в конфиге и унаследовав его от yii\i18n\DbMessageSource
НО!!! Зачем это все нужно? Не проще ли сделать в админке кнопку или по крону запускать скрипт, который будет парсить папку view и собирать не забитые в базу? Действие будет ресурсоемкое, но 1раз в определенный период времени. Внес изменения - запустил, порядок. А в Вашей идеи это будет доп действие при каждом рендере страницы, причем при каждом обращении к t().