Exemple #1
0
 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());*/
 }
Exemple #2
0
 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');
 }
Exemple #3
0
 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);
 }
Exemple #4
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();
     }
 }
Exemple #5
0
$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;
 }