Как автоматически вставить новый перевод в базу данных в Yii 2

Я только начал использовать Yii 2 и уже столкнулся с некоторыми проблемами, которые я не могу понять сам.

Я установил переводчик, чтобы использовать мою БД вместо таких файлов (и две таблицы message а также source_message):

'i18n' => [
'translations' => [
'app*' => [
'class' => 'yii\i18n\DbMessageSource',
//'basePath' => '@app/messages',
//'sourceLanguage' => 'en',
],
],
],

Я даже установил параметр переводчика в true:

public $forceTranslation = true;

Теперь я создаю текст для перевода следующим образом:

<?=Yii::t('app', 'Congratulations!');?>

Когда я проверяю отладочную информацию, я вижу, что был только один запрос:

SELECT
"t1"."message" AS "message",
"t2"."translation" AS "translation"FROM
"source_message" "t1",
"message" "t2"WHERE
t1.id = t2.id AND
t1.category = 'app' AND
t2.language = 'en'

Это ничего не возвращает, так как нет переводов. Теперь, что я не могу понять, как делать система автоматически создает новый перевод, для отсутствующих переводов.

Такая функция уже встроена или мне нужно создать ее самостоятельно? Потому что я ничего не мог найти в интернете.

И, если нет, какой правильный способ сделать это?

1

Решение

Я нашел этот скрипт Александр Зеленин что сделал именно то, что мне было нужно: https://github.com/zelenin/yii2-i18n-module

Компонент использует юй \ i18n \ MissingTranslationEvent для автоматического добавления отсутствующих переводов в базу данных

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]