* @license http://www.contenido.org/license/LIZENZ.txt * @link http://www.4fb.de * @link http://www.contenido.org * @since file available since contenido release <= 4.6 * * {@internal * created unknown * modified 2008-06-27, Frederic Schneider, add security fix * modified 2010-09-22, Murat Purc, Fixed setting of wrong initial translation id [#CON-347] * * $Id$: * }} * */ if (!defined('CON_FRAMEWORK')) { die('Illegal call'); } $langobj = new cApiLanguage($lang); $langstring = $langobj->get("name") . ' (' . $lang . ')'; $moduletranslations = new cApiModuleTranslationCollection; $module = new cApiModule($idmod); if ($action == "mod_translation_save") { $strans = new cApiModuleTranslation; $strans->loadByPrimaryKey($idmodtranslation); if ($strans->get("idmod") == $idmod) { $module->setTranslatedName($translatedname); $strans->set("translation", stripslashes($t_trans)); $strans->store(); /* Increase idmodtranslation */ $moduletranslations->select("idmod = '$idmod' AND idlang = '$lang'"); while ($mitem = $moduletranslations->next()) { if ($mitem->get("idmodtranslation") == $idmodtranslation) { $mitem2 = $moduletranslations->next(); if (is_object($mitem2)) { $idmodtranslation = $mitem2->get("idmodtranslation"); break; } } } } } if ($action == "mod_importexport_translation") { if ($mode == "export") { $sFileName = uplCreateFriendlyName(strtolower($module->get("name") . "_" . $langobj->get("name"))); if ($sFileName != "") { $moduletranslations->export($idmod, $lang, $sFileName . ".xml"); } } if ($mode == "import") { if (file_exists($_FILES["upload"]["tmp_name"])) { $moduletranslations->import($idmod, $lang, $_FILES["upload"]["tmp_name"]); } } } if (!isset($idmodtranslation)) { $idmodtranslation = 0; } $mtrans = new cApiModuleTranslation; $mtrans->loadByPrimaryKey($idmodtranslation); if ($mtrans->get("idmod") != $idmod) { $moduletranslations->select("idmod = '$idmod' AND idlang = '$lang'", '', 'idmodtranslation DESC', '1'); $mtrans = $moduletranslations->next(); if (is_object($mtrans)) { $idmodtranslation = $mtrans->get("idmodtranslation"); } else { $mtrans = new cApiModuleTranslation; } } $strings = $module->parseModuleForStrings(); /* Insert new strings */ foreach ($strings as $string) { $moduletranslations->create($idmod, $lang, $string); } $moduletranslations->select("idmod = '$idmod' AND idlang = '$lang'"); while ($d_modtrans = $moduletranslations->next()) { if (!in_array($d_modtrans->get("original"), $strings)) { $moduletranslations->delete($d_modtrans->get("idmodtranslation")); } } $page = new cPage; $page->setHtml5(); $page->setEncoding('UTF-8'); $form = new UI_Table_Form("translation"); $form->addHeader(sprintf(i18n("Translate module '%s'"), $module->get("name"))); $form->setVar("area", $area); $form->setVar("frame", $frame); $form->setVar("idmod", $idmod); $form->setVar("idmodtranslation", $idmodtranslation); $form->setVar("action", "mod_translation_save"); $transmodname = new cHTMLTextbox("translatedname", $module->getTranslatedName(), 60); $form->add(i18n("Translated Name"), $transmodname); $ilink = new cHTMLLink; $ilink->setCLink("mod_translate", 5, ""); $ilink->setCustom("idmod", $idmod); $ilink->setCustom("idmodtranslation", $mtrans->get("idmodtranslation")); $ilink->setAnchor($mtrans->get("idmodtranslation")); $iframe = ''; $table = ''; $original = new cHTMLTextarea("t_orig", clHtmlSpecialChars($mtrans->get("original"))); $original->setStyle("width: 300px;"); $translated = new cHTMLTextarea("t_trans", $mtrans->get("translation")); $translated->setStyle("width: 300px;"); $table .= '
' . i18n("Original module string") . '' . sprintf(i18n("Translation for %s"), $langstring) . ' 
' . $iframe . '
' . $original->render() . '' . $translated->render() . ' 
'; $table .= i18n("Hint: Hit ALT+SHIFT+S to save the translated entry and advance to the next string."); $form->add(i18n("String list"), $table); $mark = ''; $import = new cHTMLRadiobutton("mode", "import"); $export = new cHTMLRadiobutton("mode", "export"); $export->setLabelText(i18n("Export to file")); $import->setLabelText(i18n("Import from file")); $import->setEvent("click", "document.getElementById('vupload').style.display = '';"); $export->setEvent("click", "document.getElementById('vupload').style.display = 'none';"); $upload = new cHTMLUpload("upload"); $import->setChecked("checked"); $form2 = new UI_Table_Form("export"); $form2->setVar("action", "mod_importexport_translation"); $form2->addHeader("Import/Export"); $form2->add(i18n("Mode"), array($export, "
", $import)); $form2->add(i18n("File"), $upload, "vupload"); $form2->setVar("area", $area); $form2->setVar("frame", $frame); $form2->setVar("idmod", $idmod); $form2->setVar("idmodtranslation", $idmodtranslation); $form2->custom["submit"]["accesskey"] = ''; $page->setContent($form->render() . $mark . "
" . $form2->render()); $page->setMarkScript(2); $clang = new cApiLanguage($lang); $page->setEncoding($clang->get("encoding")); if (!($action == "mod_importexport_translation" && $mode == "export")) { $page->render(); } ?>