/** * process the input * * * @param array $_GET; (translate = en) * @param array $_POST; (translate = en, en[{md5}] = translation) * @return none * @access public */ function process($get, $post) { //DB_DataObject::debugLevel(1); $displayLang = isset($get['translate']) ? $get['translate'] : (isset($post['translate']) ? $post['translate'] : false); if ($displayLang === false) { return; } require_once 'Translation2/Admin.php'; $trd = new Translation2_Admin('dataobjectsimple', 'translations'); //$trd->setDecoratedLang('en'); foreach ($this->options['targetLangs'] as $l) { $trd->createNewLang(array('lang_id' => $l)); } // back to parent if no language selected.. if (!in_array($displayLang, $this->options['targetLangs'])) { require_once 'PEAR.php'; return PEAR::raiseError('Unknown Language :' . $displayLang); } $this->translate = $displayLang; if (isset($post['_apply'])) { $this->clearTemplateCache($displayLang); } $t = explode(' ', microtime()); $start = $t[0] + $t[1]; require_once 'Translation2.php'; $tr = new Translation2('dataobjectsimple', 'translations'); $tr->setLang($displayLang); //$suggestions = new Translation2('dataobjectsimple','translations'); //$suggestions->setLang($displayLang); $this->compileAll(); //$tr->setPageID('test.html'); // delete them after we have compiled them!! if (isset($post['_apply'])) { $this->clearTemplateCache($displayLang); } //DB_DataObject::debugLevel(1); $this->loadTranslations(); $this->loadTranslations($displayLang); $all = array(); foreach ($this->words as $page => $words) { $status[$page] = array(); $tr->setPageID($page); // pages.... foreach ($words as $word) { if (!trim(strlen($word))) { continue; } $md5 = md5($page . ':' . $word); //$value = $tr->get($word); $value = $this->getTranslation($page, $word, $displayLang); // we posted something.. if (isset($post[$displayLang][$md5])) { $nval = get_magic_quotes_gpc() ? stripslashes($post[$displayLang][$md5]) : $post[$displayLang][$md5]; if ($value != $nval) { $trd->add($word, $page, array($displayLang => $nval)); $value = $nval; } } if ($value == '') { // try the old gettext... if (isset($old[addslashes($word)])) { $trd->add($word, $page, array($displayLang => $old[addslashes($word)])); $value = $old[addslashes($word)]; } } $add = new StdClass(); $add->from = $word; $add->to = $value; if (!$add->to || $add->from == $add->to) { $add->untranslated = true; $add->suggest = implode(', ', $this->getSuggestions($word, $displayLang)); //$suggest = $suggestions->get($word); //if ($suggest && ($suggest != $word)) { // $add->suggest = $suggestions->get($word); //} } $add->md5 = $md5; $add->short = (bool) (strlen($add->from) < 30); $status[$page][] = $add; } } $t = explode(' ', microtime()); $total = $t[0] + $t[1] - $start; //printf("Built All in %0.2fs<BR>",$total); $this->status = $status; }