Ejemplo n.º 1
0
 public function init()
 {
     parent::init();
     if (!isset($this->translations['platform']) && !isset($this->translations['platform*'])) {
         $this->translations['platform'] = ['class' => 'yii\\i18n\\GettextMessageSource', 'sourceLanguage' => P::$app->sourceLanguage, 'basePath' => '@platform/messages'];
     }
     if (!isset($this->translations['db']) && !isset($this->translations['db*'])) {
         $this->translations['db'] = ['class' => 'yii\\i18n\\DbMessageSource', 'sourceLanguage' => P::$app->sourceLanguage, 'sourceMessageTable' => models\MessageSource::tableName(), 'messageTable' => models\Message::tableName()];
     }
 }
Ejemplo n.º 2
0
 /**
  * TODO: add caching
  */
 public static function initDbMessage($category, $language, $message, $translation)
 {
     $transaction = self::getDb()->beginTransaction();
     try {
         $source = MessageSource::findOne(['category' => $category, 'message' => $message]);
         if ($source === null) {
             $source = new MessageSource();
             $source->setAttributes(['category' => $category, 'message' => $message]);
             if (!$source->save()) {
                 throw new \yii\base\Exception('Unable to create message source.');
             }
         }
         self::getDb()->createCommand('INSERT IGNORE INTO ' . self::tableName() . '(id, language, translation, create_time, update_time)
             VALUES(:id, :language, :translation, :create_time, :update_time)', [':id' => $source->id, ':language' => $language, ':translation' => $translation, ':create_time' => time(), ':update_time' => time()])->execute();
         $transaction->commit();
     } catch (\Exception $e) {
         $transaction->rollback();
         throw $e;
     }
 }
 public function down()
 {
     $this->dropTable(Message::tableName());
     $this->dropTable(MessageSource::tableName());
 }