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); }
/** * 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); }
public function translate($category, $message, $params, $language) { $result = parent::translate($category, $message, $params, $language); if ($this->autoGenerate) { $this->checkTranslate($category, $message, $language); } return $result; }
/** * @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); }
/** * 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); }
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); }
/** * 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); }
public function translate($category, $message, $params, $language) { return parent::translate($category, $message, $params, \Yii::$app->params['themesLanguage']); }