Fixed errors when defining aliases.
[squirrelmail.git] / functions / i18n.php
index 8b0b0c2433ddf7e21d883f28f7fec3947130942b..c0838cad29066c07d1301fc095eb3cb01611aac1 100644 (file)
    // This array specifies the available languages.
    $languages['en']['NAME']    = 'English';
    $languages['en']['CHARSET'] = 'iso-8859-1';
+   $languages['en_EN']['ALIAS'] = 'en';
    
    $languages['ca']['NAME']    = 'Catalan';
    $languages['ca']['CHARSET'] = 'iso-8859-1';
+   $languages['ca_CA']['ALIAS'] = 'ca';
 
    $languages['hr']['NAME']    = 'Croatian';
    $languages['hr']['CHARSET'] = 'iso-8859-2';
+   $languages['hr_HR']['ALIAS'] = 'hr';
 
    $languages['cs_CZ']['NAME']    = 'Czech';
    $languages['cs_CZ']['CHARSET'] = 'iso-8859-2';
    
    $languages['da']['NAME']    = 'Danish';
    $languages['da']['CHARSET'] = 'iso-8859-1';
+   $languages['da_DA']['ALIAS'] = 'da';
    
    $languages['de']['NAME']    = 'Deutsch';
    $languages['de']['CHARSET'] = 'iso-8859-1';
+   $languages['de_DE']['ALIAS'] = 'de';
    
    $languages['id']['NAME']    = 'Indonesian';
    $languages['id']['CHARSET'] = 'iso-8859-1';
+   $languages['id_ID']['ALIAS'] = 'id';
    
    $languages['nl']['NAME']    = 'Dutch';
    $languages['nl']['CHARSET'] = 'iso-8859-1';
+   $languages['nl_NL']['ALIAS'] = 'nl';
    
    $languages['fr']['NAME']    = 'French';
    $languages['fr']['CHARSET'] = 'iso-8859-1';
+   $languages['fr_FR']['ALIAS'] = 'fr';
    
    $languages['fi']['NAME']    = 'Finnish';
    $languages['fi']['CHARSET'] = 'iso-8859-1';
+   $languages['fi_FI']['ALIAS'] = 'fi';
 
    $languages['hu']['NAME']    = 'Hungarian';
    $languages['hu']['CHARSET'] = 'iso-8859-1';
+   $languages['hu_HU']['ALIAS'] = 'hu';
 
    $languages['is']['NAME']    = 'Icelandic';
    $languages['is']['CHARSET'] = 'iso-8859-1';
+   $languages['is_IS']['ALIAS'] = 'is';
    
    $languages['it']['NAME']    = 'Italian';
    $languages['it']['CHARSET'] = 'iso-8859-1';
+   $languages['it_IT']['ALIAS'] = 'it';
   
    $languages['ko']['NAME']    = 'Korean';
    $languages['ko']['CHARSET'] = 'euc-KR';
+   $languages['ko_KO']['ALIAS'] = 'ko';
    
    $languages['no']['NAME']    = 'Norwegian (Bokmål)';
    $languages['no']['CHARSET'] = 'iso-8859-1';
+   $languages['no_NO']['ALIAS'] = 'no';
    
    $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['pl_PL']['ALIAS'] = 'pl';
+   
+   $languages['pt']['NAME'] = 'Português (Portugal)';
+   $languages['pt']['CHARSET'] = 'iso-8859-1';
+   $languages['pt_PT']['ALIAS'] = 'pt';
    
    $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['ru_RU']['ALIAS'] = 'ru';
    
    $languages['sr']['NAME']    = 'Serbian';
    $languages['sr']['CHARSET'] = 'iso-8859-2';
+   $languages['sr_SR']['ALIAS'] = 'sr';
    
    $languages['es']['NAME']    = 'Spanish';
    $languages['es']['CHARSET'] = 'iso-8859-1';
-   $languages['es_ES']['NAME']    = 'Spanish';
-   $languages['es_ES']['CHARSET'] = 'iso-8859-1';
+   $languages['es_ES']['ALIAS'] = 'es';
 
    $languages['sv']['NAME']    = 'Swedish';
    $languages['sv']['CHARSET'] = 'iso-8859-1';
+   $languages['sv_SV']['ALIAS'] = 'sv';
    
    $languages['tw']['NAME']    = 'Taiwan';
    $languages['tw']['CHARSET'] = 'big5';
+   $languages['tw_TW']['ALIAS'] = 'tw';
    
 
    // Decodes a string to the internal encoding from the given charset
    {
       static $SetupAlready = 0;
       global $HTTP_ACCEPT_LANGUAGE, $use_gettext, $languages, 
-          $squirrelmail_language, $squirrelmail_default_language;
+          $squirrelmail_language, $squirrelmail_default_language, 
+         $sm_notAlias;
       
       if ($SetupAlready)
          return;
       }
       if (! $sm_language && isset($squirrelmail_default_language))
          $sm_language = $squirrelmail_default_language;
+      $sm_notAlias = $sm_language;
+      while (isset($languages[$sm_notAlias]['ALIAS']))
+         $sm_notAlias = $languages[$sm_notAlias]['ALIAS'];
 
       if (isset($sm_language) && $use_gettext &&
           $squirrelmail_language != '' &&
-         isset($languages[$sm_language]['CHARSET'])) {
+         isset($languages[$sm_notAlias]['CHARSET'])) {
          if ((ini_get('safe_mode') == FALSE) && (getenv('LC_ALL') != $sm_language)) {
-           putenv('LC_ALL=' . $sm_language);
+           putenv('LC_ALL=' . $sm_notAlias);
          }
-         setlocale('LC_ALL', $sm_language);
+         setlocale('LC_ALL', $sm_notAlias);
          bindtextdomain('squirrelmail', '../locale/');
          textdomain('squirrelmail');
          header ('Content-Type: text/html; charset=' . $languages[$sm_language]['CHARSET']);
      global $data_dir, $username, $default_charset, $languages;
      $my_language = getPref($data_dir, $username, "language");
      if (!$my_language) return;
+     while (isset($languages[$my_language]['ALIAS']))
+        $my_language = $languages[$my_language]['ALIAS'];
      $my_charset=$languages[$my_language]['CHARSET'];
      if ($my_charset) $default_charset=$my_charset;
    }