diff --git a/framework/console/controllers/MessageController.php b/framework/console/controllers/MessageController.php index 0345b697d8..1d407a2a54 100644 --- a/framework/console/controllers/MessageController.php +++ b/framework/console/controllers/MessageController.php @@ -134,11 +134,14 @@ class MessageController extends Controller throw new Exception('The "db" option must refer to a valid database application component.'); } $sourceMessageTable = isset($config['sourceMessageTable']) ? $config['sourceMessageTable'] : '{{%source_message}}'; + $messageTable = isset($config['messageTable']) ? $config['messageTable'] : '{{%message}}'; $this->saveMessagesToDb( $messages, $db, $sourceMessageTable, - $config['removeUnused'] + $messageTable, + $config['removeUnused'], + $config['languages'] ); } } @@ -149,9 +152,11 @@ class MessageController extends Controller * @param array $messages * @param \yii\db\Connection $db * @param string $sourceMessageTable + * @param string $messageTable * @param boolean $removeUnused + * @param array $languages */ - protected function saveMessagesToDb($messages, $db, $sourceMessageTable, $removeUnused) + protected function saveMessagesToDb($messages, $db, $sourceMessageTable, $messageTable, $removeUnused, $languages) { $q = new \yii\db\Query; $current = []; @@ -196,6 +201,11 @@ class MessageController extends Controller $db->createCommand() ->insert($sourceMessageTable, ['category' => $category, 'message' => $m])->execute(); + $last_id = $db->getLastInsertID(); + foreach ($languages as $language) { + $db->createCommand() + ->insert($messageTable, ['id' => $last_id, 'language' => $language])->execute(); + } } } @@ -210,12 +220,17 @@ class MessageController extends Controller ->delete($sourceMessageTable, ['in', 'id', $obsolete])->execute(); echo "deleted.\n"; } else { + $last_id = $db->getLastInsertID(); $db->createCommand() ->update( $sourceMessageTable, ['message' => new \yii\db\Expression("CONCAT('@@',message,'@@')")], ['in', 'id', $obsolete] )->execute(); + foreach ($languages as $language) { + $db->createCommand() + ->insert($messageTable, ['id' => $last_id, 'language' => $language])->execute(); + } echo "updated.\n"; } }