/** * @param $newInsteadMissing bool * @return \AlexanderEmelyanov\yii\modules\i18n\models\Message[] * ex.: ['en-US' => AlexanderEmelyanov\yii\modules\i18n\models\Message, * 'ru-RU' => AlexanderEmelyanov\yii\modules\i18n\models\Message, * 'en-GB' => null, // It mean that this SourceMessage haven't translation for en-Gb language * ... * ] * @throws \yii\base\ErrorException */ public function getMessagesMap($newInsteadMissing = false) { /** @var \AlexanderEmelyanov\yii\modules\i18n\models\Message[] $messages */ $messages = $this->getMessages()->all(); $messageMap = []; foreach ($messages as $message) { $relatedModelsKey = $message->language; $messageMap[$relatedModelsKey] = $message; } /** @var array $relatedModelsKeys */ $languages = Message::getSupportedLanguages(); foreach ($languages as $language) { if (!isset($messageMap[$language])) { if ($newInsteadMissing) { $message = new Message(); $message->language = $language; $message->link('id0', $this); $messageMap[$language] = $message; } else { $messageMap[$language] = null; } } } return $messageMap; }