Ejemplo n.º 1
0
 public function translate($category, $message, $params, $language)
 {
     if (($language == 'en' || $language == 'en-GB') && $category == 'yii') {
         $language = 'en-US';
     }
     return parent::translate($category, $message, $params, $language);
 }
Ejemplo n.º 2
0
 /**
  * Removes wrapper `{Lang:text}` that is returned by API
  * {@inheritdoc}
  */
 public function translate($category, $message, $params, $language)
 {
     if (stripos($message, '{lang:') !== false) {
         $message = $this->removeLegacyLangTags($message);
     }
     return parent::translate($category, $message, $params, $language);
 }
Ejemplo n.º 3
0
 public function translate($category, $message, $params, $language)
 {
     $result = parent::translate($category, $message, $params, $language);
     if ($this->autoGenerate) {
         $this->checkTranslate($category, $message, $language);
     }
     return $result;
 }
Ejemplo n.º 4
0
 /**
  * @inheritdoc
  */
 public function translate($category, $message, $params, $language)
 {
     // Fix Yii source language is en-US
     if (($language == 'en' || $language == 'en_gb') && $category == 'yii') {
         $language = 'en-US';
     }
     return parent::translate($category, $message, $params, $language);
 }
Ejemplo n.º 5
0
 /**
  * https://github.com/yiisoft/yii2/issues/2519
  */
 public function testMissingTranslationEvent()
 {
     $this->assertEquals('Hallo Welt!', $this->i18n->translate('test', 'Hello world!', [], 'de-DE'));
     $this->assertEquals('Missing translation message.', $this->i18n->translate('test', 'Missing translation message.', [], 'de-DE'));
     $this->assertEquals('Hallo Welt!', $this->i18n->translate('test', 'Hello world!', [], 'de-DE'));
     Event::on(PhpMessageSource::className(), PhpMessageSource::EVENT_MISSING_TRANSLATION, function ($event) {
     });
     $this->assertEquals('Hallo Welt!', $this->i18n->translate('test', 'Hello world!', [], 'de-DE'));
     $this->assertEquals('Missing translation message.', $this->i18n->translate('test', 'Missing translation message.', [], 'de-DE'));
     $this->assertEquals('Hallo Welt!', $this->i18n->translate('test', 'Hello world!', [], 'de-DE'));
     Event::off(PhpMessageSource::className(), PhpMessageSource::EVENT_MISSING_TRANSLATION);
     Event::on(PhpMessageSource::className(), PhpMessageSource::EVENT_MISSING_TRANSLATION, function ($event) {
         if ($event->message == 'New missing translation message.') {
             $event->translatedMessage = 'TRANSLATION MISSING HERE!';
         }
     });
     $this->assertEquals('Hallo Welt!', $this->i18n->translate('test', 'Hello world!', [], 'de-DE'));
     $this->assertEquals('Another missing translation message.', $this->i18n->translate('test', 'Another missing translation message.', [], 'de-DE'));
     $this->assertEquals('Missing translation message.', $this->i18n->translate('test', 'Missing translation message.', [], 'de-DE'));
     $this->assertEquals('TRANSLATION MISSING HERE!', $this->i18n->translate('test', 'New missing translation message.', [], 'de-DE'));
     $this->assertEquals('Hallo Welt!', $this->i18n->translate('test', 'Hello world!', [], 'de-DE'));
     Event::off(PhpMessageSource::className(), PhpMessageSource::EVENT_MISSING_TRANSLATION);
 }
Ejemplo n.º 6
0
Archivo: I18N.php Proyecto: semnt/tp01
 public function translate($category, $message, $params, $language)
 {
     if ($category == 'yii') {
         return parent::translate($category, $message, $params, $language);
     }
     $language = substr($language, 0, 2);
     $t_message = $this->getClassMessage($category, $message, $language);
     if (!$t_message) {
         $t_message = $this->getControllerMessage($message, $language);
     }
     if (!$t_message) {
         $t_message = $this->getModuleMessage($message, $language);
     }
     if (!$t_message) {
         $t_message = $this->getApplication($message, $language);
     }
     return $this->format($t_message ?: $message, $params, $language);
 }
Ejemplo n.º 7
0
 /**
  * This function will return the translation for the model, attribute and language passed by parameter.
  * @param \yii\db\ActiveRecord $arguments[0] the instance of the model
  * @param string $arguments[1] the attribute name
  * @param string $arguments[2] language (defaults Yii::$app->language)
  * @return string
  * @throws \yii\base\InvalidConfigException
  */
 public function translate(...$arguments)
 {
     $model = $arguments[0];
     $columnName = $arguments[1];
     $language = isset($arguments[2]) ? $arguments[2] : Yii::$app->language;
     $db = Yii::$app->get($this->db);
     if (isset($model, $columnName) and $arguments[0] instanceof ActiveRecord and $model->hasAttribute($columnName)) {
         $model->tableName;
         $result = (new Query())->select('translation')->from($this->tableName)->where(['table_name' => (string) $model->tableName(), 'column_name' => (string) $columnName, 'row_id' => (string) $model->primaryKey, 'language' => (string) $language])->scalar($db);
         if ($result === false) {
             Yii::warning("No translation found in table '{$this->tableName}'' by the following parameters: ");
         } else {
             return $result;
         }
     }
     // default implementation
     return parent::translate(...$arguments);
 }
Ejemplo n.º 8
0
 public function translate($category, $message, $params, $language)
 {
     return parent::translate($category, $message, $params, \Yii::$app->params['themesLanguage']);
 }