public function saveLanguageMetadata(Gpf_Db_Language $lang) { $lang->setName($this->language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_NAME)); $lang->setEnglishName($this->language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_ENG_NAME)); $lang->setActive(true); $lang->setAuthor($this->language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_AUTHOR)); $lang->setVersion($this->language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_VERSION)); $lang->setImported(Gpf_DbEngine_Database::getDateString()); $lang->setDateFormat($this->language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_DATE_FORMAT)); $lang->setTimeFormat($this->language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_TIME_FORMAT)); $lang->setThousandsSeparator($this->language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_THOUSANDS_SEPARATOR)); $lang->setDecimalSeparator($this->language->getMetaValue(Gpf_Lang_CsvLanguage::LANG_DECIMAL_SEPARATOR)); $lang->setTranslatedPercentage($this->language->getTranslationPercentage()); $lang->setIsDefault(false); $lang->save(); }
/** * Set language as default and unset another default language * * @service language write * @param Gpf_Rpc_Params $params * @return Gpf_Rpc_Action */ public function setLanguageAsDefault(Gpf_Rpc_Params $params) { $action = new Gpf_Rpc_Action($params); try { Gpf_Db_Table_Languages::getInstance()->unsetDefaultLanguage($action->getParam(Gpf_Db_Table_Languages::ID)); $lang = new Gpf_Db_Language(); $lang->setId($action->getParam(Gpf_Db_Table_Languages::ID)); $lang->load(); $lang->setIsDefault(true); $lang->save(); } catch (Exception $e) { $action->addError(); $action->setErrorMessage($this->_('Failed to set default language with error: %s', $e->getMessage())); return $action; } $action->setInfoMessage($this->_('Language %s set as default.', $lang->getEnglishName())); $action->addOk(); return $action; }
/** * @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; }