/**
  * @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);
     }
 }