/**
* Initializes the DbMessageSource component.
*/
public function init()
{
parent::init();
if ($this->autoInsert) {
$this->on(static::EVENT_MISSING_TRANSLATION, function ($event) {
if (!isset($this->messagesId[$event->message])) {
$query = new Query();
$id = $query->select("id")->from($this->sourceMessageTable)->where(['category' => $event->category, 'message' => $event->message])->scalar($this->db);
if ($id === false) {
$this->db->createCommand()->insert($this->sourceMessageTable, ['category' => $event->category, 'message' => $event->message])->execute();
$id = $this->db->lastInsertID;
}
/* @var $i18n I18N */
$i18n = Yii::$app->i18n;
$languages = $i18n->getLanguages();
foreach ($languages as $language_id => $language) {
$query = new Query();
$exists = $query->from($this->messageTable)->where(['id' => $id, 'language_id' => $language_id])->exists($this->db);
if (!$exists) {
$this->db->createCommand()->insert($this->messageTable, ['id' => $id, 'language_id' => $language_id, 'translation' => ''])->execute();
}
}
$this->messagesId[$event->message] = $id;
}
$event->translatedMessage = $event->message;
});
}
}