protected function execute() { $lang = $this->loadLanguage(); $file = new Gpf_Io_Csv_Reader($this->fileName, ';', '"', array('source', 'translation', 'type', 'module', 'status', 'customer')); $this->language = new Gpf_Lang_CsvLanguage(); $this->language->loadFromCsvFile($file); $pendingMessage = $this->_('Importing language dictionary %s (%s)', $this->language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_NAME), $this->language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_ENG_NAME)); if ($this->saveMetadata) { if ($this->isPending('saveMetadata', $pendingMessage)) { $this->saveLanguageMetadata($lang); $this->setDone(); } } if ($this->isPending('loadCustomTranslations', $pendingMessage)) { $this->loadCustomTranslations($this->language); $this->setDone(); } if ($this->isPending('backupOriginalTranslation', $pendingMessage)) { $this->backupOriginalTranslation($this->language); $this->setDone(); } if ($this->isPending('exportCache', $this->_('Exporting dictionary cache.'))) { $this->language->exportAccountCache(); $this->setDone(); } }
/** * Load metadata from imported language * * @service language import * @param Gpf_Rpc_Params $params * @return Gpf_Rpc_Form */ public function loadCsvFileMetadata(Gpf_Rpc_Params $params) { $form = new Gpf_Rpc_Form($params); try { $file = new Gpf_Io_Csv_Reader($form->getFieldValue("Id"), ';', '"', array('source', 'translation', 'type', 'module', 'status', 'customer')); $language = new Gpf_Lang_CsvLanguage(); $language->loadFromCsvFile($file); $form->setField('code', $language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_CODE)); $form->setField('name', $language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_NAME)); $form->setField('eng_name', $language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_ENG_NAME)); $form->setField('author', $language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_AUTHOR)); $form->setField('version', $language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_VERSION)); $form->setField('translated', $language->getTranslationPercentage()); } catch (Exception $e) { $form->setErrorMessage($this->_('Failed to import language file. Incorrect file format. (%s)', $e->getMessage())); } return $form; }