[ Index ]

PHP Cross Reference of Nuke-Evolution v2.0.5

title

Body

[close]

/includes/ -> language.php (source)

   1  <?php
   2  
   3  /*********************************************
   4    CPG Dragonfly™ CMS
   5    ********************************************
   6    Copyright (c) 2004 - 2005 by CPG-Nuke Dev Team
   7    http://dragonflycms.org
   8  
   9    Dragonfly is released under the terms and conditions
  10    of the GNU GPL version 2 or any later version
  11  
  12    $Source: /cvs/html/includes/functions/language.php,v $
  13    $Revision: 9.14 $
  14    $Author: djmaze $
  15    $Date: 2006/01/18 03:16:15 $
  16  **********************************************/
  17  
  18  /*=======================================================================
  19   Nuke-Evolution Basic: Enhanced PHP-Nuke Web Portal System
  20   =======================================================================*/
  21  
  22  /*****[CHANGES]**********************************************************
  23  -=[Base]=-
  24        Language Selector                        v3.0.0       12/11/2005
  25  -=[Mod]=-
  26        Custom Language File                     v1.0.1       06/02/2005
  27   ************************************************************************/
  28  
  29  if (!defined('NUKE_EVO')) {
  30      die("You can't access this file directly...");
  31  }
  32  
  33  global $language, $multilingual;
  34  
  35  // This data was taken from Dragonfly CMS 
  36  // http://www.dragonflycms.org
  37  $browserlang = array(
  38      'af' => 'afrikaans', // ISO-8859-1
  39      'sq' => 'albanian',  // ISO-8859-1
  40      'ar' => 'arabic',   // 1256
  41      'ar-dz' => 'arabic', // algeria
  42      'ar-bh' => 'arabic', // bahrain
  43      'ar-eg' => 'arabic', // egypt
  44      'ar-iq' => 'arabic', // iraq
  45      'ar-jo' => 'arabic', // jordan
  46      'ar-kw' => 'arabic', // kuwait
  47      'ar-lb' => 'arabic', // lebanon
  48      'ar-ly' => 'arabic', // libya
  49      'ar-ma' => 'arabic', // morocco
  50      'ar-om' => 'arabic', // oman
  51      'ar-qa' => 'arabic', // qatar
  52      'ar-sa' => 'arabic', // Saudi Arabia
  53      'ar-sy' => 'arabic', // syria
  54      'ar-tn' => 'arabic', // tunisia
  55      'ar-ae' => 'arabic', // U.A.E
  56      'ar-ye' => 'arabic', // yemen
  57      'hy' => 'armenian',
  58      'ast' => 'asturian',
  59      'eu' => 'basque',
  60      'be' => 'belarusian',
  61      'bs' => 'bosanski',//bosnian -bosanski is nuke lang name
  62      'bg' => 'bulgarian',
  63      'ca' => 'catalan',
  64      'zh' => 'chinese',
  65      'zh-cn' => 'chinese', // China
  66      'zh-hk' => 'chinese', // Hong Kong
  67      'zh-sg' => 'chinese', // Singapore
  68      'zh-tw' => 'chinese', // Taiwan
  69      'hr' => 'croatian',   // 1250
  70      'cs' => 'czech',
  71      'da' => 'danish',   // ISO-8859-1
  72      'dcc' => 'desi',    // Deccan, India
  73      'nl' => 'dutch',    // ISO-8859-1
  74      'nl-be' => 'dutch', // Belgium
  75      'en' => 'english',
  76      'en-au' => 'english', // Australia
  77      'en-bz' => 'english', // Belize
  78      'en-ca' => 'english', // Canada
  79      'en-ie' => 'english', // Ireland
  80      'en-jm' => 'english', // Jamaica
  81      'en-nz' => 'english', // New Zealand
  82      'en-ph' => 'english', // Philippines
  83      'en-za' => 'english', // South Africa
  84      'en-tt' => 'english', // Trinidad
  85      'en-gb' => 'english', // United Kingdom
  86      'en-us' => 'english', // United States
  87      'en-zw' => 'english', // Zimbabwe
  88      'eo' => 'esperanto',
  89      'et' => 'estonian',
  90      'eu' => 'euraska',   // ISO-8859-1
  91      'fo' => 'faeroese',
  92      'fi' => 'finnish',   // ISO-8859-1
  93      'fr' => 'french',   // ISO-8859-1
  94      'fr-be' => 'french', // Belgium
  95      'fr-ca' => 'french', // Canada
  96      'fr-fr' => 'french', // France
  97      'fr-lu' => 'french', // Luxembourg
  98      'fr-mc' => 'french', // Monaco
  99      'fr-ch' => 'french', // Switzerland
 100      'gl' => 'galego', //galician- galego is nuke lang name // ISO-8859-1
 101      'ka' => 'georgian',
 102      'de' => 'german',   // ISO-8859-1
 103      'de-at' => 'german', // Austria
 104      'de-de' => 'german', // Germany
 105      'de-li' => 'german', // Liechtenstein
 106      'de-lu' => 'german', // Luxembourg
 107      'de-ch' => 'german', // Switzerland
 108      'el' => 'greek',      // ISO-8859-7
 109      'he' => 'hebrew',
 110      'hu' => 'hungarian',  // ISO-8859-2
 111      'is' => 'icelandic',  // ISO-8859-1
 112      'id' => 'indonesian', // ISO-8859-1
 113      'ga' => 'irish',
 114      'it' => 'italian',  // ISO-8859-1
 115      'it-ch' => 'italian', // Switzerland
 116      'ja' => 'japanese',
 117      'ko' => 'korean',
 118      'ko-kp' => 'korean', // North Korea
 119      'ko-kr' => 'korean', // South Korea
 120      'ku' => 'kurdish',    // 1254
 121      'lv' => 'latvian',
 122      'lt' => 'lithuanian',   // 1257
 123      'mk' => 'macedonian',   // 1251
 124      'ms' => 'malayu',
 125      'no' => 'norwegian',    // ISO-8859-1
 126      'nb' => 'norwegian',    // bokmal
 127      'nn' => 'norwegian',    // nynorsk
 128      'pl' => 'polish',      // ISO-8859-2
 129      'pt' => 'portuguese',   // 28591, Latin-I, iso-8859-1
 130      'pt-br' => 'brazilian', // Brazil
 131      'ro' => 'romanian',  // 28592, Central Europe, iso-8859-2
 132      'ru' => 'russian',    // 1251 ANSI
 133      'gd' => 'scots gealic',
 134      'sr' => 'serbian',
 135      'sk' => 'slovak',      // 1250 ANSI
 136      'sl' => 'slovenian',    // 28592, Central Europe, iso-8859-2
 137      'es' => 'spanish',    // 28591, Latin-I, iso-8859-1
 138      'es-ar' => 'spanish',   // Argentina
 139      'es-bo' => 'spanish', // Bolivia
 140      'es-cl' => 'spanish', // Chile
 141      'es-co' => 'spanish', // Colombia
 142      'es-cr' => 'spanish', // Costa Rica
 143      'es-do' => 'spanish', // Dominican Republic
 144      'es-ec' => 'spanish', // Ecuador
 145      'es-sv' => 'spanish', // El Salvador
 146      'es-gt' => 'spanish', // Guatemala
 147      'es-hn' => 'spanish', // Honduras
 148      'es-mx' => 'spanish', // Mexico
 149      'es-ni' => 'spanish', // Nicaragua
 150      'es-pa' => 'spanish', // Panama
 151      'es-py' => 'spanish', // Paraguay
 152      'es-pe' => 'spanish', // Peru
 153      'es-pr' => 'spanish', // Puerto Rico
 154      'es-es' => 'castellano', // Spain
 155      'es-uy' => 'spanish', // Uruguay
 156      'es-ve' => 'spanish', // Venezuela
 157      'sv' => 'swedish',
 158      'sv-fi' => 'swedish',   // Finland
 159      'sw' => 'swahili',    // Kenya and Tanzania
 160      'th' => 'thai',      // 874
 161      'tr' => 'turkish',    // 1254
 162      'ug' => 'uighur',      // ISO-8859-1, 28591 Turkish, Uzbek, China
 163      'uk' => 'ukrainian',
 164      'vi' => 'vietnamese',
 165      'cy' => 'welsh',
 166      'xh' => 'xhosa',
 167      'yi' => 'yiddish',
 168      'zu' => 'zulu'
 169  );
 170  
 171  //To resolve getting the random capital letters ie (English)
 172  $language = strtolower($language);
 173  $multilingual = intval($multilingual);
 174  $currentlang = $language;
 175  
 176  if ($multilingual) {
 177      if (isset($_GET['newlang']) && is_lang($_GET['newlang'])) {
 178          $currentlang = $_GET['newlang'];
 179      } else if (isset($_POST['newlang']) && is_lang($_POST['newlang'])) {
 180          $currentlang = $_POST['newlang'];
 181      } elseif (isset($_COOKIE['lang']) && is_lang($_COOKIE['lang'])) {
 182          $currentlang = $_COOKIE['lang'];
 183      } else {
 184          $currentlang = detect_lang($browserlang);
 185      }
 186      if (!is_lang($currentlang)) {
 187          $currentlang = $language;
 188      }
 189      setcookie('lang', $currentlang, time()+31536000);
 190  }
 191  
 192  //Fallback
 193  if (empty($currentlang)) {
 194      $currentlang = 'english';
 195  }
 196  
 197  define('_LANGCODE', array_search($currentlang, $browserlang));
 198  unset($browserlang);
 199  
 200  include_lang($currentlang);
 201  
 202  function is_lang($language) {
 203      $maincheck = file_exists(NUKE_LANGUAGE_DIR.'lang-'.$language.'.php');
 204      $admncheck = file_exists(NUKE_ADMIN_DIR.'language/lang-'.$language.'.php');
 205      if($maincheck && $admncheck) {
 206          return true;
 207      }
 208      return false;
 209  }
 210  
 211  function include_lang($language) {
 212      include_once(NUKE_LANGUAGE_DIR.'lang-'.$language.'.php');
 213      include_once(NUKE_LANGUAGE_DIR.'custom/lang-'.$language.'.php');
 214      if(defined('ADMIN_FILE')) {
 215          include_once(NUKE_ADMIN_DIR.'language/lang-'.$language.'.php');
 216          include_once(NUKE_ADMIN_DIR.'language/custom/lang-'.$language.'.php');
 217      }
 218  }
 219  
 220  function detect_lang($browserlang) {
 221      $http_accept_language = (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : getenv('HTTP_ACCEPT_LANGUAGE');
 222      $accepted_languages = explode(',', strtolower($http_accept_language));
 223      foreach ($accepted_languages as $browser_lang) {
 224          $langcode = ($browser_lang[2] == '-') ? substr($browser_lang, 0, 5) : substr($browser_lang, 0, 2);
 225          $tmplang = $browserlang[$langcode];
 226          if (is_lang($tmplang)) {
 227              return $tmplang;
 228          }
 229      }
 230      return false;
 231  }
 232  
 233  function get_lang($module) {
 234      global $currentlang, $language;
 235      static $included;
 236      if(!isset($included)) {
 237          $included = array();
 238      } elseif(isset($included[$module])) {
 239          return $included[$module];
 240      }
 241      if (file_exists(NUKE_MODULES_DIR.$module.'/language/lang-'.$currentlang.'.php')) {
 242          $path = NUKE_MODULES_DIR.$module.'/language/lang-'.$currentlang.'.php';
 243      } elseif (file_exists(NUKE_MODULES_DIR.$module.'/language/lang-'.$language.'.php')) {
 244          $path = NUKE_MODULES_DIR.$module.'/language/lang-'.$language.'.php';
 245      } elseif (file_exists(NUKE_MODULES_DIR.$module.'/language/lang-english.php')) {
 246          $path = NUKE_MODULES_DIR.$module.'/language/lang-english.php';
 247      } else {
 248          return $included[$module] = false;
 249      }
 250      require_once($path);
 251      return $included[$module] = true;
 252  }
 253  
 254  function lang_list() {
 255      static $languages;
 256      if (!isset($languages)) {
 257          $handle = opendir(NUKE_LANGUAGE_DIR);
 258          while (false !== ($file = readdir($handle))) {
 259              if (preg_match('/lang-(.*?)\.php/i', $file, $lang)) {
 260                  $languages[] = $lang[1];
 261              }
 262          }
 263          closedir($handle);
 264          sort($languages);
 265      }
 266      return $languages;
 267  }
 268  
 269  ?>


Generated: Wed Jun 6 11:38:01 2007 Cross-referenced by PHPXref 0.7