/** * Download cached csv language file * * @service language export * @param Gpf_Rpc_Params $params */ public function downloadCsvLanguage(Gpf_Rpc_Params $params) { $form = new Gpf_Rpc_Form($params); $download = new Gpf_File_Download_FileSystem(Gpf_Lang_CsvLanguage::getAccountCsvFileName($form->getFieldValue('code'))); $download->setAttachment(true); return $download; }
/** * @service language read * @return Gpf_Rpc_Serializable */ public function getRows(Gpf_Rpc_Params $params) { $language = new Gpf_Db_Language(); $language->setId($params->get(Gpf_Db_Table_Languages::ID)); $language->load(); $filters = $params->get('filters'); $filters[0][2] = htmlspecialchars($filters[0][2]); $params->set('filters', $filters); $this->setCsvReader(new Gpf_Io_Csv_Reader(Gpf_Lang_CsvLanguage::getAccountCsvFileName($language->getCode()))); return parent::getRows($params); }
public function regenerateLanguageCacheFiles() { //load langage $dbLang = new Gpf_Db_Language(); $dbLang->setAccountId(Gpf_Session::getInstance()->getAuthUser()->getAccountId()); $dbLang->setCode($this->languageCode); $dbLang->setId($dbLang->generateId()); $dbLang->load(); $lang = new Gpf_Lang_CsvLanguage(); $lang->loadFromCsvFile(new Gpf_Io_Csv_Reader(Gpf_Lang_CsvLanguage::getAccountCsvFileName($this->languageCode))); $lang->exportAccountCache(); }
public function recomputeTranslationPercentage($languageId) { $lang = new Gpf_Db_Language(); $lang->setId($languageId); $lang->load(); $fileName = Gpf_Lang_CsvLanguage::getAccountCsvFileName($language->getCode()); $csvLanguage = new Gpf_Lang_CsvLanguage(); $csvLanguage->loadFromCsvFile(new Gpf_Io_Csv_Reader($fileName)); $lang->setTranslatedPercentage($csvLanguage->getTranslationPercentage()); $lang->update(array(self::TRANSLATED_PERCENTAGE)); }
/** * 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"))); } }
/** * Delete csv file from account directory */ private function deleteLanguageFilesFromAccount() { //delete csv file from account $fileName = Gpf_Lang_CsvLanguage::getAccountCsvFileName($this->getCode()); $file = new Gpf_Io_File($fileName); if ($file->isExists()) { $file->delete(); } //TODO delete also cache language files from account }
/** * @service language write * @return Gpf_Rpc_Action */ public function saveFields(Gpf_Rpc_Params $params) { $action = new Gpf_Rpc_Action($params); $action->setErrorMessage($this->_('Failed to save %s field(s)')); $action->setInfoMessage($this->_('%s field(s) successfully saved')); $language = new Gpf_Db_Language(); $language->setId($action->getParam(Gpf_Db_Table_Languages::ID)); $language->load(); $csvFile = new Gpf_Io_Csv_Reader(Gpf_Lang_CsvLanguage::getAccountCsvFileName($language->getCode())); $csvLanguage = new Gpf_Lang_CsvLanguage(); $csvLanguage->loadFromCsvFile($csvFile); $fields = new Gpf_Data_RecordSet(); $fields->loadFromArray($action->getParam("fields")); foreach ($fields as $field) { $translation = new Gpf_Lang_Parser_Translation(); $translation->setSourceMessage($field->get('id')); if ($csvLanguage->existTranslation($translation)) { $existingTranslation = $csvLanguage->getTranslation($translation); if ($existingTranslation->getStatus() == Gpf_Lang_Parser_Translation::STATUS_NOT_TRANSLATED) { $existingTranslation->setStatus(Gpf_Lang_Parser_Translation::STATUS_TRANSLATED); $csvLanguage->incrementTranslatedCount(); } $existingTranslation->set($field->get("name"), $this->sourceCodeSpecialChars($field->get("value"))); } $action->addOk(); } $csvLanguage->exportAccountCache(); $language->setTranslatedPercentage($csvLanguage->getTranslationPercentage()); $language->save(); return $action; }
/** * Rebuild cache for language defined by id * * @param $languageId */ public static function rebuildLanguageCache($languageId) { $lang = new Gpf_Db_Language(); $lang->setId($languageId); $lang->load(); $fileName = Gpf_Lang_CsvLanguage::getAccountCsvFileName($lang->getCode()); $csvLang = new Gpf_Lang_CsvLanguage(); $csvLang->loadFromCsvFile(new Gpf_Io_Csv_Reader($fileName)); $csvLang->copyMetadataFromDbLanguage($lang); $csvLang->exportAccountCache(); }