/** * Import language specified in parameter fileName * * @service language import * @param Gpf_Rpc_Params $params * @return Gpf_Rpc_Form */ public function importLanguage(Gpf_Rpc_Params $params) { $form = new Gpf_Rpc_Form($params); //Read metadata of file $file = new Gpf_Io_Csv_Reader($form->getFieldValue("fileName"), ';', '"', array('source', 'translation', 'type', 'module', 'status', 'customer')); $file->setMaxLinesToRead(10); $language = new Gpf_Lang_CsvLanguage(); $language->loadFromCsvFile($file); try { $importer = new Gpf_Lang_ImportLanguageTask($form->getFieldValue("fileName"), $language->getCode(), false); $importer->run(); } catch (Gpf_Tasks_LongTaskInterrupt $e) { $form->addField('progress', 'PROGRESS'); $form->setFieldError('progress', $e->getMessage()); $form->setErrorMessage($e->getMessage()); return $form; } $form->setInfoMessage($this->_('%s (%s) imported', $language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_NAME), $language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_ENG_NAME))); return $form; }
/** * If exists language with this code in account directory already, backup translation file * * @param $language */ private function backupOriginalTranslation(Gpf_Lang_CsvLanguage $language) { $origFileName = Gpf_Lang_CsvLanguage::getAccountCsvFileName($language->getCode()); $file = new Gpf_Io_File($origFileName); if ($file->isExists()) { Gpf_Io_File::copy($file, new Gpf_Io_File($origFileName . '.v' . str_replace('.', '', Gpf_Application::getInstance()->getVersion()) . '_' . date("YmdHis"))); } }