function execute(&$controller, &$request) { $from_charset = $_POST['charset']; $to_charset = $_POST['newcharset']; $lang = $_POST['language']; $textdomain = mamboCore::get('rootPath') . "/language"; $language = new mamboLanguage($lang); $language->load(); $language->charset = $to_charset; $language->save(); $gettext_admin = new PHPGettextAdmin(); foreach ($language->files as $arr) { $gettext_admin->convert_charset($arr['domain'], $textdomain, $lang, $from_charset, $to_charset); $gettext_admin->message_format($arr['domain'], $textdomain, $lang); } #return $controller->redirect('index', 'language'); $request->set('task', 'edit'); $request->set('act', 'language'); $request->set('lang', $lang); $controller->view('edit'); # /*$admin = new PHPGettextAdmin(); $admin->convert_encoding($catalog, $from, $to); dump(iconv_get_encoding());*/ }
function execute(&$controller, &$request) { $lang = $request->get('lang'); $language = new mamboLanguage($lang); //$language->load(true); $domain = $_POST['domain']; $textdomain = mamboCore::get('rootPath') . "/language"; $gettext_admin = new PHPGettextAdmin(true); $gettext_admin->compile($lang, $textdomain, $language->charset); $language->save(); return $controller->redirect('index', 'catalogs'); }
function execute(&$controller, &$request) { $root = mamboCore::get('rootPath'); $live = mamboCore::get('mosConfig_live_site'); include $root . '/administrator/includes/pcl/pclzip.lib.php'; chdir($root); $lang = mosGetParam($_POST, 'lang', ''); $language = new mamboLanguage($lang); $language->load(true); $zipfile = "{$root}/media/MamboLanguage_{$lang}.zip"; $archive = new PclZip($zipfile); foreach ($language->files as $file) { $v_list = $archive->add($root . '/' . $file['filename'], PCLZIP_OPT_REMOVE_PATH, $root . 'language/'); if ($v_list == 0) { die("Error : " . $archive->errorInfo(true)); } } if (ereg('Opera(/| )([0-9].[0-9]{1,2})', $UserAgent)) { $UserBrowser = "Opera"; } elseif (ereg('MSIE ([0-9].[0-9]{1,2})', $UserAgent)) { $UserBrowser = "IE"; } else { $UserBrowser = ''; } $mime_type = 'application/x-zip'; $filename = "MamboLanguage_{$lang}.zip"; @ob_end_clean(); ob_start(); header('Content-Type: ' . $mime_type); header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT'); if ($UserBrowser == 'IE') { header('Content-Disposition: inline; filename="' . $filename . '"'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); } else { header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Pragma: no-cache'); } readfile($zipfile); ob_end_flush(); $fmanager =& mosFileManager::getInstance(); $fmanager->deleteFile($zipfile); exit(0); }
function updatecatalog($compile = true, $add_to_dict = true) { $domain = $_POST['domain']; $textdomain = $_POST['textdomain']; $lang = $_POST['lang']; $catalog = new PHPGettext_catalog($domain, $textdomain); $catalog->setproperty('mode', 'po'); $catalog->setproperty('lang', $lang); $catalog->load(); $catalog->setComments($_POST['comments']); $catalog->setHeaders($_POST['headers']); $plural_forms = $catalog->headers['Plural-Forms']; preg_match('/nplurals[\\s]*[=]{1}[\\s]*([\\d]+);[\\s]*plural[\\s]*[=]{1}[\\s]*(.*);/', $plural_forms, $matches); $is_plural = $matches[1] > 1; foreach ($_POST as $key => $value) { if (preg_match('/^([a-z]+[_]?[a-z]+?)[_]?([0-9]+)?_([0-9]+)$/', $key, $matches)) { switch ($matches[1]) { case 'msgid': if (get_magic_quotes_gpc() == 1) { $value = stripslashes($value); //$value = htmlentities($value); } $messages[$matches[3]]['msgid'] = $value; break; case 'msgid_plural': if ($is_plural) { $messages[$matches[3]]['msgid_plural'] = $value; } break; case 'msgstr': if (!empty($messages[$matches[3]]['msgid_plural'])) { if ($matches[2] != '') { $messages[$matches[3]]['msgstr'][$matches[2]] = stripslashes($value); } else { $messages[$matches[3]]['msgstr'][0] = stripslashes($value); $messages[$matches[3]]['msgstr'][1] = ''; } } else { $messages[$matches[3]]['msgstr'] = stripslashes($value); } break; case 'fuzzy': $messages[$matches[3]]['fuzzy'] = $value == 'true' ? true : false; break; } } } foreach ($messages as $index => $arr) { if (strcmp($catalog->strings[$index]->msgid, $arr['msgid']) == 0) { $catalog->strings[$index]->setmsgstr($arr['msgstr']); $catalog->strings[$index]->msgid_plural = isset($arr['msgid_plural']) ? $arr['msgid_plural'] : null; $catalog->strings[$index]->setfuzzy($arr['fuzzy']); } } $catalog->save(); $language = new mamboLanguage($lang); $language->save(); $gettext_admin = new PHPGettextAdmin(); $gettext_admin->add_to_dict($domain, $textdomain, $lang, $language->charset); $catalog->load(); if ($compile) { $catalog->setproperty('mode', 'mo'); $catalog->save(); } }
$id = (int) mosGetParam($_REQUEST, 'id', 0); $task = htmlspecialchars(mosGetParam($_REQUEST, 'task', '')); $act = strtolower(htmlspecialchars(mosGetParam($_REQUEST, 'act', ''))); $section = htmlspecialchars(mosGetParam($_REQUEST, 'section', '')); $no_html = strtolower(mosGetParam($_REQUEST, 'no_html', '')); $cid = (array) mosGetParam($_POST, 'cid', array()); ini_set('session.use_trans_sid', 0); ini_set('session.use_cookies', 1); ini_set('session.use_only_cookies', 1); /* initialize i18n */ $lang = $configuration->current_language->name; $charset = $configuration->current_language->charset; $gettext =& phpgettext(); $gettext->debug = $configuration->mosConfig_locale_debug; $gettext->has_gettext = $configuration->mosConfig_locale_use_gettext; $language = new mamboLanguage($lang); $gettext->setlocale($lang, $language->getSystemLocale()); $gettext->bindtextdomain($lang, $configuration->rootPath() . '/language'); $gettext->bind_textdomain_codeset($lang, $charset); $gettext->textdomain($lang); #$gettext =& phpgettext(); dump($gettext); if ($adminside) { // Start ACL require_once $configuration->rootPath() . '/includes/gacl.class.php'; require_once $configuration->rootPath() . '/includes/gacl_api.class.php'; $acl = new gacl_api(); // Handle special admin side options $option = strtolower(mosGetParam($_REQUEST, 'option', 'com_admin')); $domain = substr($option, 4); session_name(md5(mamboCore::get('mosConfig_live_site'))); session_start();
function getlocales() { return mamboLanguage::getLocales(); }
/** * Enter description here... * * @param unknown_type $domain * @param unknown_type $langdir */ function add_to_dict($domain, $textdomain, $lang, $enc = 'utf-8') { $textdomain = rtrim($textdomain, '\\/'); $path = "{$textdomain}/{$lang}"; if (!is_dir("{$textdomain}/glossary/")) { mkdir("{$textdomain}/glossary/"); } $catalog = new PHPGettext_catalog($domain, $textdomain); $catalog->setproperty('mode', _MODE_PO_); $catalog->setproperty('lang', $lang); $catalog->setproperty('charset', $enc); $catalog->load(); foreach ($catalog->strings as $msgid => $string) { if (!$string->is_fuzzy) { if (is_array($string->msgstr)) { if (in_array("", $string->msgstr)) { continue; } } else { if (!$string->msgstr) { continue; } } $new[$string->msgid] = $string; } } $glossary = new PHPGettext_catalog($lang . "." . $enc, $textdomain); $glossary->setproperty('mode', _MODE_GLO_); $glossary->setproperty('lang', $lang); if (!file_exists("{$textdomain}/glossary/{$lang}.{$enc}.po")) { $headers = $this->header(); $glossary->setproperty('comments', $headers[0]); $glossary->setproperty('headers', $headers[1]); $glossary->save(); } else { $glossary->load(); } $glossary->merge($new); $glossary->save(); $language = new mamboLanguage($lang); $language->save(); return true; }