From 745b1466fc76d5ded589e2469328086002430c1c Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Wed, 22 Feb 2006 16:58:00 -0500
Subject: [PATCH] Updated localizations

---
 program/include/main.inc |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/program/include/main.inc b/program/include/main.inc
index 06d4d7b..244e902 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -79,7 +79,6 @@
   session_start();
   $sess_id = session_id();
   
-    $_SESSION['user_lang'] = rcube_language_prop($CONFIG['locale_string']);
   // create session and set session vars
   if (!$_SESSION['client_id'])
     {
@@ -308,11 +307,12 @@
   $OUTPUT->include_script('program/js/common.js');
   $OUTPUT->include_script('program/js/app.js');
 
+  // set locale setting
+  rcmail_set_locale($sess_user_lang);
+
   // set user-selected charset
   if (!empty($CONFIG['charset']))
     $OUTPUT->set_charset($CONFIG['charset']);
-  else
-    rcmail_set_locale($sess_user_lang);
 
   // add some basic label to client
   rcube_add_label('loading');
@@ -351,7 +351,7 @@
 
   if ($MBSTRING && function_exists("mb_language"))
     {
-    if (!mb_language(strtok($lang, "_")))
+    if (!@mb_language(strtok($lang, "_")))
       $MBSTRING = FALSE;   //  unsupport language
     }
 
@@ -662,6 +662,7 @@
 // send correct response on a remote request
 function rcube_remote_response($js_code, $flush=FALSE)
   {
+  global $OUTPUT, $CHARSET;
   static $s_header_sent = FALSE;
   
   if (!$s_header_sent)
@@ -673,7 +674,7 @@
     }
 
   // send response code
-  print rcube_charset_convert($js_code, 'UTF-8', $GLOBALS['CHARSET']);
+  print rcube_charset_convert($js_code, $CHARSET, $OUTPUT->get_charset());
 
   if ($flush)  // flush the output buffer
     flush();
@@ -888,7 +889,12 @@
 
   // encode for javascript use
   if ($enctype=='js')
+    {
+    if ($OUTPUT->get_charset()!='UTF-8')
+      $str = rcube_charset_convert($str, $GLOBALS['CHARSET'], $OUTPUT->get_charset());
+      
     return preg_replace(array("/\r\n/", '/"/', "/([^\\\])'/"), array('\n', '\"', "$1\'"), strtr($str, $js_rep_table));
+    }
 
   // encode for RTF
   if ($enctype=='rtf')
@@ -1543,6 +1549,8 @@
 
 function rcmail_charset_selector($attrib)
   {
+  global $OUTPUT;
+  
   // pass the following attributes to the form class
   $field_attrib = array('name' => '_charset');
   foreach ($attrib as $attr => $value)
@@ -1571,7 +1579,7 @@
   $select = new select($field_attrib);
   $select->add(array_values($charsets), array_keys($charsets));
   
-  $set = $_POST['_charset'] ? $_POST['_charset'] : $GLOBALS['CHARSET'];
+  $set = $_POST['_charset'] ? $_POST['_charset'] : $OUTPUT->get_charset();
   return $select->show($set);
   }
 

--
Gitblit v1.9.1