/
v.bolshakov
/
AIEcosystem-Testing
Обзор
Документация
Войти
/
v.bolshakov
/
AIEcosystem-Testing
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
common/components/DbMessageSource.php
60 строк
2 KB
Developer
Initial commit
03 авг 2026, 17:43
03 авг 2026, 17:43
7433917
Код
Авторство
О чём код?
<?php namespace common\components; use common\helpers\ArrayHelper; use common\helpers\LanguageHelper; use common\kdf\KLanguage; use Yii; use yii\db\Query; use yii\helpers\VarDumper; /** * Работа с переводами в приложении * * @author Dmitry E. Semenov <sde.tomsk@gmail.com> * @copyright Self (c) 2024 */ class DbMessageSource extends \yii\i18n\DbMessageSource { /** * @inheritdoc */ public $sourceMessageTable = 'i18n_source_message'; /** * @inheritdoc */ public $messageTable = 'i18n_target_message'; /** * @inheritdoc */ protected function loadMessagesFromDb($category, $language) { $result = LanguageHelper::getLanguageList(); $result = array_flip($result); $language_id = ArrayHelper::getValue($result, $language, KLanguage::ENGLISH); if ($language_id <> KLanguage::ENGLISH) { $mainQuery = (new Query()) ->select(['message' => 't1.message', 'translation' => 't2.translation']) ->from(['t1' => $this->sourceMessageTable]) ->innerJoin(['t2' => $this->messageTable], 't1.id = t2.message_id') ->where([ 't1.category' => $category, 't2.language_id' => $language_id, ]); $messages = $mainQuery->createCommand($this->db)->queryAll(); $map = ArrayHelper::map($messages, 'message', 'translation'); return $map; } else { return []; } } }