From fbf77b4493f1b77c99751d8a86365c712ae3fb1b Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Fri, 18 Nov 2005 10:35:15 -0500 Subject: [PATCH] Added Japanese localization --- program/include/main.inc | 77 ++++++++++++++++++++++++++++++++++---- 1 files changed, 69 insertions(+), 8 deletions(-) diff --git a/program/include/main.inc b/program/include/main.inc index ce9eaf0..936cad3 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -40,12 +40,16 @@ include_once('config/db.inc.php'); $CONFIG = array_merge($CONFIG, $rcmail_config); + if (empty($CONFIG['log_dir'])) + $CONFIG['log_dir'] = $INSTALL_PATH.'logs'; + else + $CONFIG['log_dir'] = ereg_replace('\/$', '', $CONFIG['log_dir']); // set PHP error logging according to config if ($CONFIG['debug_level'] & 1) { ini_set('log_errors', 1); - ini_set('error_log', $INSTALL_PATH.'logs/errors'); + ini_set('error_log', $CONFIG['log_dir'].'/errors'); } if ($CONFIG['debug_level'] & 4) ini_set('display_errors', 1); @@ -64,7 +68,8 @@ $DB->sqlite_initials = $INSTALL_PATH.'SQL/sqlite.initial.sql'; // we can use the database for storing session data - if (is_object($DB) && $DB->db_provider!='sqlite') + // session queries do not work with MDB2 + if ($CONFIG['db_backend']!='mdb2' && is_object($DB) && $DB->db_provider!='sqlite') include_once('include/session.inc'); @@ -226,7 +231,7 @@ // init output object for GUI and add common scripts function load_gui() { - global $CONFIG, $OUTPUT, $COMM_PATH, $IMAP, $JS_OBJECT_NAME; + global $CONFIG, $OUTPUT, $COMM_PATH, $JS_OBJECT_NAME, $sess_user_lang; // init output page $OUTPUT = new rcube_html_page(); @@ -237,11 +242,42 @@ if (!empty($GLOBALS['_framed'])) $javascript .= "$JS_OBJECT_NAME.set_env('framed', true);\n"; - + $OUTPUT->add_script($javascript); $OUTPUT->include_script('program/js/common.js'); - $OUTPUT->include_script('program/js/app.js'); + $OUTPUT->include_script('program/js/app.js'); + + // set user-selected charset + if ($CONFIG['charset']) + $OUTPUT->set_charset($CONFIG['charset']); + else + rcmail_set_locale($sess_user_lang); + + // add some basic label to client + rcube_add_label('loading'); } + + +// set localization charset based on the given language +function rcmail_set_locale($lang) + { + global $OUTPUT, $INSTLL_PATH, $CHARSET; + static $rcube_charsets; + + if (!$rcube_charsets) + @include($INSTLL_PATH.'program/localization/index.inc'); + + if (isset($rcube_charsets[$lang])) + { + $OUTPUT->set_charset($rcube_charsets[$lang]); + $CHARSET = $rcube_charsets[$lang]; + } + else + { + $OUTPUT->set_charset('ISO-8859-1'); + $CHARSET = 'ISO-8859-1'; + } + } // perfom login to the IMAP server and to the webmail service @@ -299,7 +335,7 @@ // update user's record $DB->query("UPDATE ".get_table_name('users')." - SET last_login=NOW() + SET last_login=now() WHERE user_id=?", $user_id); } @@ -336,7 +372,7 @@ $DB->query("INSERT INTO ".get_table_name('users')." (created, last_login, username, mail_host, language) - VALUES (NOW(), NOW(), ?, ?, ?)", + VALUES (now(), now(), ?, ?, ?)", $user, $host, $_SESSION['user_lang']); @@ -375,6 +411,16 @@ } return $user_id; + } + + +// overwrite action variable +function rcmail_overwrite_action($action) + { + global $OUTPUT, $JS_OBJECT_NAME; + $GLOBALS['_action'] = $action; + + $OUTPUT->add_script(sprintf("\n%s.set_env('action', '%s');", $JS_OBJECT_NAME, $action)); } @@ -447,7 +493,7 @@ if (!sizeof($sa_languages)) { - @include_once($INSTLL_PATH.'program/localization/index.inc'); + @include($INSTLL_PATH.'program/localization/index.inc'); if ($dh = @opendir($INSTLL_PATH.'program/localization')) { @@ -464,6 +510,20 @@ } return $sa_languages; + } + + +// add a localized label to the client environment +function rcube_add_label() + { + global $OUTPUT, $JS_OBJECT_NAME; + + $arg_list = func_get_args(); + foreach ($arg_list as $i => $name) + $OUTPUT->add_script(sprintf("%s.add_label('%s', '%s');", + $JS_OBJECT_NAME, + $name, + rep_specialchars_output(rcube_label($name), 'js'))); } @@ -523,6 +583,7 @@ // replace all strings ($varname) with the content of the according global variable function parse_with_globals($input) { + $GLOBALS['__comm_path'] = $GLOBALS['COMM_PATH']; $output = preg_replace('/\$(__[a-z0-9_\-]+)/e', '$GLOBALS["\\1"]', $input); return $output; } -- Gitblit v1.9.1