Reinstating fix for the "to" addresses. Hopefully won't need them for CC
[squirrelmail.git] / functions / i18n.php
index 905da99da6bd73271e59eced1fde215b7bc7e6ba..18a5319c9faf00b20867310c4917353af654031b 100644 (file)
@@ -9,42 +9,70 @@
  ** Internally the output character set is used. Other characters are
  ** encoded using Unicode entities according to HTML 4.0.
  **
+ ** $Id$
  **/
 
    $i18n_php = true;
+   if (! isset($squirrelmail_language)) { $squirrelmail_language = ""; }
 
    // This array specifies the available languages.
    $languages["en"]["NAME"]    = "English";
-   $languages["no"]["NAME"]    = "Norwegian (Bokmål)";
-   $languages["no"]["CHARSET"] = "iso-8859-1";
-   $languages["no_NO_ny"]["NAME"] = "Norwegian (Nynorsk)";
-   $languages["no_NO_ny"]["CHARSET"] = "iso-8859-1";
+   $languages["en"]["CHARSET"] = "iso-8859-1";
+   
+   $languages["ca"]["NAME"]    = "Catalan";
+   $languages["ca"]["CHARSET"] = "iso-8859-1";
+
+   $languages["cs_CZ"]["NAME"]    = "Czech";
+   $languages["cs_CZ"]["CHARSET"] = "iso-8859-2";
+   
+   $languages["da"]["NAME"]    = "Danish";
+   $languages["da"]["CHARSET"] = "iso-8859-1";
+   
    $languages["de"]["NAME"]    = "Deutsch";
    $languages["de"]["CHARSET"] = "iso-8859-1";
-   $languages["ru"]["NAME"]    = "Russian KOI8-R";
-   $languages["ru"]["CHARSET"] = "koi8-r";
-   $languages["pl"]["NAME"]    = "Polish";
-   $languages["pl"]["CHARSET"] = "iso-8859-2";
-   $languages["sv"]["NAME"]    = "Swedish";
-   $languages["sv"]["CHARSET"] = "iso-8859-1";
+   
    $languages["nl"]["NAME"]    = "Dutch";
    $languages["nl"]["CHARSET"] = "iso-8859-1";
-   $languages["pt_BR"]["NAME"] = "Portuguese (Brazil)";
-   $languages["pt_BR"]["CHARSET"] = "iso-8859-1";
+   
    $languages["fr"]["NAME"]    = "French";
    $languages["fr"]["CHARSET"] = "iso-8859-1";
+   
+   $languages["fi"]["NAME"] = "Finnish";
+   $languages["fi"]["CHARSET"] = "iso-8859-1";
+
    $languages["it"]["NAME"]    = "Italian";
    $languages["it"]["CHARSET"] = "iso-8859-1";
-   $languages["cs"]["NAME"]    = "Czech";
-   $languages["cs"]["CHARSET"] = "iso-8859-2";
-   $languages["es"]["NAME"]    = "Spanish";
-   $languages["es"]["CHARSET"] = "iso-8859-1";
+   
    $languages["ko"]["NAME"]    = "Korean";
    $languages["ko"]["CHARSET"] = "euc-KR";
-   $languages["ca"]["NAME"]    = "Catalan";
-   $languages["ca"]["CHARSET"] = "iso-8859-1";
-       $languages["sr"]["NAME"]         = "Serbian";
-       $languages["sr"]["CHARSET"] = "iso-8859-2";
+   
+   $languages["no"]["NAME"]    = "Norwegian (Bokmål)";
+   $languages["no"]["CHARSET"] = "iso-8859-1";
+   
+   $languages["no_NO_ny"]["NAME"] = "Norwegian (Nynorsk)";
+   $languages["no_NO_ny"]["CHARSET"] = "iso-8859-1";
+   
+   $languages["pl"]["NAME"]    = "Polish";
+   $languages["pl"]["CHARSET"] = "iso-8859-2";
+   
+   $languages["pt_BR"]["NAME"] = "Portuguese (Brazil)";
+   $languages["pt_BR"]["CHARSET"] = "iso-8859-1";
+   
+   $languages["ru"]["NAME"]    = "Russian KOI8-R";
+   $languages["ru"]["CHARSET"] = "koi8-r";
+   
+   $languages["sr"]["NAME"]     = "Serbian";
+   $languages["sr"]["CHARSET"] = "iso-8859-2";
+   
+   $languages["es"]["NAME"]    = "Spanish";
+   $languages["es"]["CHARSET"] = "iso-8859-1";
+   
+   $languages["sv"]["NAME"]    = "Swedish";
+   $languages["sv"]["CHARSET"] = "iso-8859-1";
+   
+   $languages["tw"]["NAME"]    = "Taiwan";
+   $languages["tw"]["CHARSET"] = "big5";
+   
 
    // Decodes a string to the internal encoding from the given charset
    function charset_decode ($charset, $string) {
@@ -57,7 +85,7 @@
 
       if ($debug_mime) $string = $charset.":".$string;
 
-      if (ereg("iso-8859-(.*)", $charset, $res)) {
+      if (ereg("iso-8859-([[:digit:]]+)", $charset, $res)) {
          if ($res[1] == "1")
             return charset_decode_iso_8859_1 ($string);
          else if ($res[1] == "2")
    function set_up_language($sm_language, $do_search = false)
    {
       static $SetupAlready = 0;
-      global $HTTP_ACCEPT_LANGUAGE;
+               global $HTTP_ACCEPT_LANGUAGE, $use_gettext, $languages, $squirrelmail_language;
       
       if ($SetupAlready)
          return;
       if ($do_search && ! $sm_language && isset($HTTP_ACCEPT_LANGUAGE)) {
          $sm_language = substr($HTTP_ACCEPT_LANGUAGE, 0, 2);
       }
-      
+
       if (isset($sm_language) && $use_gettext &&
-         $sm_language != "en" && $squirrelmail_language != "" &&
+         $squirrelmail_language != "" &&
          $languages[$sm_language]["CHARSET"]) {
-         putenv("LC_ALL=".$sm_language);
+         if (ini_get("safe_mode")==FALSE && getenv("LC_ALL")!=$sm_language) {
+            putenv("LC_ALL=".$sm_language);
+         }
+         setlocale("LC_ALL", $sm_language);
          bindtextdomain("squirrelmail", "../locale/");
          textdomain("squirrelmail");
          header ("Content-Type: text/html; charset=".$languages[$sm_language]["CHARSET"]);