/** * @return Array[] Generate a two dimensional array of the translation data for the exportLanguages: * * ~~~ * [ * 'languages' => [], * 'languageSources' => [], * 'languageTranslations' => [], * ] * ~~~ * */ public function getExportData() { $languages = Language::findAll($this->exportLanguages); $languageSources = LanguageSource::find()->all(); $languageTranslations = LanguageTranslate::findAll(['language' => $this->exportLanguages]); $data = ['languages' => $languages, 'languageSources' => $languageSources, 'languageTranslations' => $languageTranslations]; return $data; }
public function init() { parent::init(); $this->js = []; $this->sourcePath = \Yii::$app->getModule('translatemanager')->getLanguageItemsDirPath(); $langs = \lajax\translatemanager\models\Language::findAll(['status' => \lajax\translatemanager\models\Language::STATUS_ACTIVE]); foreach ($langs as $key => $lang) { if (file_exists(\Yii::getAlias($this->sourcePath . $lang->language_id . '.js'))) { $this->js[] = $lang->language_id . '.js'; } } }
/** * Creating JavaScript language file in current language. */ private function _generateJSFile() { $this->_loadLanguageItems(); $data = []; foreach ($this->_languageItems as $language_item) { $data[md5($language_item->message)] = $language_item->languageTranslate->translation; } $langs = \lajax\translatemanager\models\Language::findAll(['status' => \lajax\translatemanager\models\Language::STATUS_ACTIVE]); foreach ($langs as $key => $lang) { $filename = $this->_basePath . '/' . $lang->language_id . '.js'; $file_contents = str_replace('{language_items}', Json::encode($data), $this->_template); $file_contents = str_replace('{language_id}', $lang->language_id, $file_contents); if (!$key) { //first file should contain `language` var with current language Id $file_contents .= 'var language = "' . $this->_languageId . '"'; } file_put_contents($filename, $file_contents); } }