/** * method that handles the on missing translation event * * @param CMissingTranslationEvent $event * @return string the message to translate or the translated message if option autoTranslate is set to true */ public static function missingTranslation($event) { $attributes = array('category' => $event->category, 'message' => $event->message); $model = new SourceMessageModel(); if ($model->find('message=:message AND category=:category', $attributes) === null) { $model->attributes = $attributes; if (!$model->save()) { return Yii::log('Message ' . $event->message . ' could not be added to messageSource table'); } } return $event; }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer the ID of the model to be loaded */ public function loadModel($id) { $model = SourceMessageModel::model()->findByPk($id); if ($model === null) throw new CHttpException(404, 'The requested page does not exist.'); return $model; }
$this->breadcrumbs=array( 'Interface Translations', ); ?> <h1>Manage Interface Translations</h1> <?php $this->widget('bootstrap.widgets.TbGridView', array( 'id'=>'source-message-model-grid', 'dataProvider'=>$model->search(), 'type' => 'striped bordered', 'filter'=>$model, 'columns'=>array( array( 'name' => 'category', 'value' => '$data->category', 'filter' => CHtml::listData(SourceMessageModel::model()->findAll(array('group' => 'category')), "category", "category"), ), array( 'header' => 'Default Message', 'name' => 'message', ), array( 'htmlOptions' => array('width'=>30), 'class'=>'bootstrap.widgets.TbButtonColumn', 'template'=>'{update}{delete}', ), ), )); ?>