Zikula_Core
[ class tree: Zikula_Core ] [ index: Zikula_Core ] [ all elements ]

Source for file pnLang.php

Documentation is available at pnLang.php

  1. <?php
  2. /**
  3.  * Zikula Application Framework
  4.  *
  5.  * @copyright (c) 2001, Zikula Development Team
  6.  * @link http://www.zikula.org
  7.  * @version $Id: pnLang.php 24342 2008-06-06 12:03:14Z markwest $
  8.  * @license GNU/GPL - http://www.gnu.org/copyleft/gpl.html
  9.  * @package Zikula_Core
  10.  * @subpackage pnAPI
  11.  */
  12.  
  13. /**
  14.  * Load language files for the current language
  15.  *
  16.  * @return void 
  17.  */
  18. function pnLangLoad()
  19. {
  20.     // See if a language update is required
  21.     $newlang  FormUtil::getPassedValue('newlang'null'GETPOST');
  22.     $currentlang SessionUtil::getVar('lang'null);
  23.  
  24.     if (!empty($newlang)) {
  25.         $langList languagelist();
  26.         if (isset($langList[$newlang])) {
  27.             if (file_exists('language/' DataUtil::formatForOS($newlang'/core.php')) {
  28.                 $lang $newlang;
  29.             }
  30.             // This file is for easy of use when developing language packs.
  31.             // See http://community.zikula.org/index.php?module=Wiki&tag=LanguagePack
  32.             else if (isset($GLOBALS['PNConfig']['System']['development']&& $GLOBALS['PNConfig']['System']['development']
  33.                      && file_exists('config/languages/' DataUtil::formatForOS($newlang'/language/' DataUtil::formatForOS($newlang'/core.php')) {
  34.                 $lang $newlang;
  35.             else {
  36.                 LogUtil::registerError ("Uninstalled language request [$newlang] received ...");
  37.                 $lang $currentlang;
  38.             }
  39.         else {
  40.             LogUtil::registerError ("Invalid language request [$newlang] received ...");
  41.             $lang $currentlang;
  42.         }
  43.     elseif (!empty($currentlang&& (file_exists('language/' DataUtil::formatForOS($currentlang'/core.php'|| file_exists('config/languages/' DataUtil::formatForOS($currentlang'/language/' DataUtil::formatForOS($currentlang'/core.php'))) {
  44.         $lang $currentlang;
  45.     else {
  46.         $detectlang pnConfigGetVar('language_detect');
  47.         $defaultlang pnConfigGetVar('language');
  48.         switch ($detectlang{
  49.             case 1// Detect Browser Language
  50.                 $cnvlanguage  cnvlanguagelist();
  51.                 $currentlang  '';
  52.                 $browserlangs split ('[,;]'isset($_SERVER['HTTP_ACCEPT_LANGUAGE']$_SERVER['HTTP_ACCEPT_LANGUAGE''');
  53.                 // attempt to match a browser language to an existing language pack
  54.                 foreach ($browserlangs as $blang{
  55.                     if (isset($cnvlanguage[$blang]&& file_exists('language/' DataUtil::formatForOS($cnvlanguage[$blang]'/core.php')) {
  56.                         $lang $cnvlanguage[$blang];
  57.                         break;
  58.                     }
  59.                 }
  60.                 if (empty($lang))
  61.                     $lang $defaultlang;
  62.                 break;
  63.             default// use the site default
  64.                 $lang $defaultlang;
  65.          }
  66.     }
  67.     // store the language setting for future use
  68.     SessionUtil::setVar('lang'$lang);
  69.  
  70.     // Load global language defines
  71.     // these are deprecated and will be moved to the relevant modules
  72.     // with .8x
  73.     $oslang DataUtil::formatForOS($lang);
  74.     $files array();
  75.     
  76.     // This file is for easy of use when developing language packs.
  77.     // See http://community.zikula.org/index.php?module=Wiki&tag=LanguagePack
  78.     if (isset($GLOBALS['PNConfig']['System']['development']&& $GLOBALS['PNConfig']['System']['development'])
  79.       $files['config/languages/' DataUtil::formatForOS($currentlang'/language/' DataUtil::formatForOS($currentlang'/core.php';
  80.  
  81.     $files['language/' $oslang '/core.php';
  82.     if (file_exists('config/languages/' $oslang '/global.php')) {
  83.         $files['config/languages/' $oslang '/global.php';
  84.     elseif (file_exists('config/languages/eng/global.php')) {
  85.         $files['config/languages/eng/global.php';
  86.     }
  87.     Loader::loadAllFiles ($files);
  88.  
  89.     // set the correct locale
  90.     // note: windows has different requires for the setlocale funciton to other OS's
  91.     // See: http://uk.php.net/setlocale
  92.    $winos stristr(getenv('OS'),'windows');
  93.    # passing multiple locale names is possible since PHP 4.3.0
  94.    $locarray array(_LOCALE_LOCALEWIN);
  95.    $res pnSetLocale(LC_ALL$locarray);
  96.    if (!$res{
  97.       $winos ?  $loc _LOCALEWIN $loc _LOCALE;
  98.       LogUtil::registerError (pnML('_ERROR_LOCALENOTSET'array('locale' => $loc)));
  99.    }
  100. }
  101.  
  102.  
  103. /**
  104.  * For strftime we have to convert day and month names if we are using utf-8 on Windows systems
  105.  * see PHP manual and comments
  106.  * @param category    as for setlocale
  107.  * @param locale      string or array of locale names
  108.  * @author              Bernd Plagge
  109.  * @return OS dependent encoding (Linux: character set, Windows: codepage
  110. */
  111. function pnSetLocale($category$locale)
  112. {
  113.     $winos stristr(getenv('OS'),'windows');
  114.     !isset($category$category "LC_ALL" "";
  115.     is_Array($localeimplode(','$locale'';
  116.     $result setlocale($category$locale);
  117.  
  118.     $p strpos($result'.');
  119.     if ($p 0{
  120.       $encoding substr($result$p+1);
  121.       if ($winos{
  122.         $encoding 'CP'.$encoding;
  123.       }
  124.     }
  125.     # ensure that we always return the valid character set
  126.     empty($encoding$encoding _CHARSET '';
  127.     # session variable is used in DateUtil
  128.     pnSessionSetVar('encoding'$encoding);
  129.     return $encoding;
  130. }
  131.  
  132.  
  133. /**
  134.  * return a translated string
  135.  *
  136.  * @param name constant to use
  137.  * @param params associative array of replacements
  138.  */
  139. function pnML($name$params array()$html false$noprocess false$escapeForScript false)
  140. {
  141.     if (!isset($name)) {
  142.         return $name;
  143.     }
  144.  
  145.     if (!defined($name)) {
  146.         return $name;
  147.     }
  148.  
  149.     // get the constant
  150.     $result constant($name);
  151.  
  152.     // perform any string replacements
  153.     if (!empty($params)) {
  154.         foreach ($params as $var => $string{
  155.             $var "%$var%";
  156.             $result str_replace($var$string$result);
  157.         }
  158.     }
  159.  
  160.     if (isset($noprocess&& $noprocess{
  161.         // don't do anything to result
  162.     else if (isset($html&& ($html 0)) {
  163.         $result DataUtil::formatForDisplayHTML($result);
  164.     else {
  165.         $result DataUtil::formatForDisplay($result);
  166.     }
  167.  
  168.     if ($escapeForScript)
  169.       $result addslashes($result);
  170.  
  171.     return $result;
  172. }
  173.  
  174. /**
  175.  * Make common language selection dropdown
  176.  *
  177.  * @author Tim Litwiller
  178.  */
  179. function lang_dropdown()
  180. {
  181.     $currentlang pnUserGetLang();
  182.     echo "<select name=\"alanguage\" class=\"pn-text\" id=\"language\">";
  183.     $lang languagelist();
  184.     print "<option value=\"\">" _ALL '</option>';
  185.     $handle opendir('language');
  186.     while (false !== ($f readdir($handle))) {
  187.         if (is_dir("language/$f"&& isset($lang[$f])) {
  188.             $langlist[$f$lang[$f];
  189.         }
  190.     }
  191.     closedir ($handle);
  192.  
  193.     asort($langlist);
  194.     foreach ($langlist as $k => $v{
  195.         echo '<option value="' $k '"';
  196.         if ($currentlang == $k{
  197.             echo ' selected="selected"';
  198.         }
  199.         echo '>' DataUtil::formatForDisplay($v'</option> ';
  200.     }
  201.     echo "</select>";
  202. }
  203.  
  204. /**
  205.  * Loads the required language file for module
  206.  * some workaround for new layout with /system and /modules [larsneo]
  207.  *
  208.  * @author Patrick Kellum <webmaster@ctarl-ctarl.com>
  209.  */
  210. function modules_get_language($script 'global')
  211. {
  212.     $currentlang SessionUtil::getVar('lang');
  213.     $language pnConfigGetVar('language');
  214.  
  215.     if (!isset($GLOBALS['ModName'])) {
  216.         $modname pnModGetName();
  217.     else {
  218.         $modname $GLOBALS['ModName'];
  219.     }
  220.  
  221.     $modinfo pnModGetInfo(pnModGetIDFromName($modname));
  222.     // TODO: shouldn't we check for a successful load??
  223.     $moddir  DataUtil::formatForOS ($modinfo['directory']);
  224.     $curlang DataUtil::formatForOS ($currentlang);
  225.     $syslang DataUtil::formatForOS ($language);
  226.  
  227.     $files array();
  228.     $files['modules/'.$moddir.'/lang/'.$curlang."/$script.php";
  229.     $files['modules/'.$moddir.'/lang/'.$syslang."/$script.php";
  230.     $files['modules/'.$moddir."/lang/eng/$script.php";
  231.     Loader::loadOneFile ($files);
  232.  
  233.     return;
  234. }
  235.  
  236. /**
  237.  * Loads the required manual for module
  238.  */
  239. function modules_get_manual()
  240. {
  241.     $currentlang SessionUtil::getVar('lang');
  242.     $language pnConfigGetVar('language');
  243.  
  244.     if (!isset($GLOBALS['ModName'])) {
  245.         $modname pnModGetName();
  246.     else {
  247.         $modname $GLOBALS['ModName'];
  248.     }
  249.  
  250.     $modinfo pnModGetInfo(pnModGetIDFromName($modname));
  251.     // TODO: shouldn't we check for a successful load??
  252.     $moddir  DataUtil::formatForOS ($modinfo['directory']);
  253.     $curlang DataUtil::formatForOS ($currentlang);
  254.     $syslang DataUtil::formatForOS ($language);
  255.  
  256.     if (file_exists('modules/'.$moddir.'/lang/'.$curlang.'/manual.html')) {
  257.         $hlpfile 'modules/'.$moddir.'/lang/'.$curlang.'/manual.html';
  258.     elseif (!empty($language)) {
  259.         if (file_exists('modules/'.$moddir.'/lang/'.$syslang.'/manual.html')) {
  260.             $hlpfile 'modules/'.$moddir.'/lang/'.$syslang.'/manual.html';
  261.         }
  262.     else {
  263.         $hlpfile 'modules/'.$moddir.'/lang/eng/manual.html';
  264.     }
  265.  
  266.     return;
  267. }
  268.  
  269. /**
  270.  * Loads the required language file for themes
  271.  *
  272.  * deprecated - pnThemeLoad now handles the language file directly
  273.  * @author Patrick Kellum
  274.  * @deprecated
  275.  */
  276. function themes_get_language($script 'global')
  277. {
  278. }
  279.  
  280. /**
  281.  *list of all availabe languages
  282.  *
  283.  * @author Patrick Kellum <webmaster@ctarl-ctarl.com>
  284.  */
  285. function languagelist()
  286. {
  287.     // Need to ensure this is loaded for language defines
  288.     if (!defined('_PNINSTALLVER'))
  289.         pnBlockLoad('Blocks''thelang');
  290.     // All entries use ISO 639-2/T
  291.     // hilope - added all 469 languages available under ISO 639-2
  292.  
  293.     Loader::loadFile('language/languages.php');
  294.  
  295.     $lang['aar'_LANGUAGE_AAR// Afar
  296.     $lang['abk'_LANGUAGE_ABK// Abkhazian
  297.     $lang['ace'_LANGUAGE_ACE// Achinese
  298.     $lang['ach'_LANGUAGE_ACH// Acoli
  299.     $lang['ada'_LANGUAGE_ADA// Adangme
  300.     $lang['ady'_LANGUAGE_ADY// Adyghe; Adygei
  301.     $lang['afa'_LANGUAGE_AFA// Afro-Asiatic (Other)
  302.     $lang['afh'_LANGUAGE_AFH// Afrihili
  303.     $lang['afr'_LANGUAGE_AFR// Afrikaans
  304.     $lang['aka'_LANGUAGE_AKA// Akan
  305.     $lang['akk'_LANGUAGE_AKK// Akkadian
  306.     $lang['ale'_LANGUAGE_ALE// Aleut
  307.     $lang['alg'_LANGUAGE_ALG// Algonquian languages
  308.     $lang['amh'_LANGUAGE_AMH// Amharic
  309.     $lang['ang'_LANGUAGE_ANG// English, Old
  310.     $lang['apa'_LANGUAGE_APA// Apache languages
  311.     $lang['ara'_LANGUAGE_ARA// Arabic
  312.     $lang['arc'_LANGUAGE_ARC// Aramaic
  313.     $lang['arg'_LANGUAGE_ARG// Aragonese
  314.     $lang['arn'_LANGUAGE_ARN// Araucanian
  315.     $lang['arp'_LANGUAGE_ARP// Arapaho
  316.     $lang['art'_LANGUAGE_ART// Artificial (Other)
  317.     $lang['arw'_LANGUAGE_ARW// Arawak
  318.     $lang['asm'_LANGUAGE_ASM// Assamese
  319.     $lang['ast'_LANGUAGE_AST// Asturian; Bable
  320.     $lang['ath'_LANGUAGE_ATH// Athapascan languages
  321.     $lang['aus'_LANGUAGE_AUS// Australian languages
  322.     $lang['ava'_LANGUAGE_AVA// Avaric
  323.     $lang['ave'_LANGUAGE_AVE// Avestan
  324.     $lang['awa'_LANGUAGE_AWA// Awadhi
  325.     $lang['aym'_LANGUAGE_AYM// Aymara
  326.     $lang['aze'_LANGUAGE_AZE// Azerbaijani
  327.     $lang['bad'_LANGUAGE_BAD// Banda
  328.     $lang['bai'_LANGUAGE_BAI// Bamileke languages
  329.     $lang['bak'_LANGUAGE_BAK// Bashkir
  330.     $lang['bal'_LANGUAGE_BAL// Baluchi
  331.     $lang['bam'_LANGUAGE_BAM// Bambara
  332.     $lang['ban'_LANGUAGE_BAN// Balinese
  333.     $lang['bas'_LANGUAGE_BAS// Basa
  334.     $lang['bat'_LANGUAGE_BAT// Baltic (Other)
  335.     $lang['bej'_LANGUAGE_BEJ// Beja
  336.     $lang['bel'_LANGUAGE_BEL// Belarusian
  337.     $lang['bem'_LANGUAGE_BEM// Bemba
  338.     $lang['ben'_LANGUAGE_BEN// Bengali
  339.     $lang['ber'_LANGUAGE_BER// Berber (Other)
  340.     $lang['bho'_LANGUAGE_BHO// Bhojpuri
  341.     $lang['bih'_LANGUAGE_BIH// Bihari
  342.     $lang['bik'_LANGUAGE_BIK// Bikol
  343.     $lang['bin'_LANGUAGE_BIN// Bini
  344.     $lang['bis'_LANGUAGE_BIS// Bislama
  345.     $lang['bla'_LANGUAGE_BLA// Siksika
  346.     $lang['bnt'_LANGUAGE_BNT// Bantu (Other)
  347.     $lang['bod'_LANGUAGE_BOD// Tibetan
  348.     $lang['bos'_LANGUAGE_BOS// Bosnian
  349.     $lang['bra'_LANGUAGE_BRA// Braj
  350.     $lang['bre'_LANGUAGE_BRE// Breton
  351.     $lang['btk'_LANGUAGE_BTK// Batak (Indonesia)
  352.     $lang['bua'_LANGUAGE_BUA// Buriat
  353.     $lang['bug'_LANGUAGE_BUG// Buginese
  354.     $lang['bul'_LANGUAGE_BUL// Bulgarian
  355.     $lang['byn'_LANGUAGE_BYN// Blin; Bilin
  356.     $lang['cad'_LANGUAGE_CAD// Caddo
  357.     $lang['cai'_LANGUAGE_CAI// Central American Indian (Other)
  358.     $lang['car'_LANGUAGE_CAR// Carib
  359.     $lang['cat'_LANGUAGE_CAT// Catalan; Valencian
  360.     $lang['cau'_LANGUAGE_CAU// Caucasian (Other)
  361.     $lang['ceb'_LANGUAGE_CEB// Cebuano
  362.     $lang['cel'_LANGUAGE_CEL// Celtic (Other)
  363.     $lang['ces'_LANGUAGE_CES// Czech
  364.     $lang['cha'_LANGUAGE_CHA// Chamorro
  365.     $lang['chb'_LANGUAGE_CHB// Chibcha
  366.     $lang['che'_LANGUAGE_CHE// Chechen
  367.     $lang['chg'_LANGUAGE_CHG// Chagatai
  368.     $lang['chk'_LANGUAGE_CHK// Chuukese
  369.     $lang['chm'_LANGUAGE_CHM// Mari
  370.     $lang['chn'_LANGUAGE_CHN// Chinook jargon
  371.     $lang['cho'_LANGUAGE_CHO// Choctaw
  372.     $lang['chp'_LANGUAGE_CHP// Chipewyan
  373.     $lang['chr'_LANGUAGE_CHR// Cherokee
  374.     $lang['chu'_LANGUAGE_CHU// Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic
  375.     $lang['chv'_LANGUAGE_CHV// Chuvash
  376.     $lang['chy'_LANGUAGE_CHY// Cheyenne
  377.     $lang['cmc'_LANGUAGE_CMC// Chamic languages
  378.     $lang['cop'_LANGUAGE_COP// Coptic
  379.     $lang['cor'_LANGUAGE_COR// Cornish
  380.     $lang['cos'_LANGUAGE_COS// Corsican
  381.     $lang['cpe'_LANGUAGE_CPE// Creoles and pidgins, English based (Other)
  382.     $lang['cpf'_LANGUAGE_CPF// Creoles and pidgins, French-based (Other)
  383.     $lang['cpp'_LANGUAGE_CPP// Creoles and pidgins,
  384.     $lang['cre'_LANGUAGE_CRE// Cree
  385.     $lang['crh'_LANGUAGE_CRH// Crimean Tatar; Crimean Turkish
  386.     $lang['crp'_LANGUAGE_CRP// Creoles and pidgins (Other)
  387.     $lang['csb'_LANGUAGE_CSB// Kashubian
  388.     $lang['cus'_LANGUAGE_CUS// Cushitic (Other)
  389.     $lang['cym'_LANGUAGE_CYM// Welsh
  390.     $lang['dak'_LANGUAGE_DAK// Dakota
  391.     $lang['dan'_LANGUAGE_DAN// Danish
  392.     $lang['dar'_LANGUAGE_DAR// Dargwa
  393.     $lang['day'_LANGUAGE_DAY// Dayak
  394.     $lang['del'_LANGUAGE_DEL// Delaware
  395.     $lang['den'_LANGUAGE_DEN// Slave (Athapascan)
  396.     $lang['deu'_LANGUAGE_DEU// German
  397.     $lang['dgr'_LANGUAGE_DGR// Dogrib
  398.     $lang['din'_LANGUAGE_DIN// Dinka
  399.     $lang['div'_LANGUAGE_DIV// Divehi
  400.     $lang['doi'_LANGUAGE_DOI// Dogri
  401.     $lang['dra'_LANGUAGE_DRA// Dravidian (Other)
  402.     $lang['dsb'_LANGUAGE_DSB// Lower Sorbian
  403.     $lang['dua'_LANGUAGE_DUA// Duala
  404.     $lang['dum'_LANGUAGE_DUM// Dutch, Middle
  405.     $lang['dyu'_LANGUAGE_DYU// Dyula
  406.     $lang['dzo'_LANGUAGE_DZO// Dzongkha
  407.     $lang['efi'_LANGUAGE_EFI// Efik
  408.     $lang['egy'_LANGUAGE_EGY// Egyptian (Ancient)
  409.     $lang['eka'_LANGUAGE_EKA// Ekajuk
  410.     $lang['ell'_LANGUAGE_ELL// Greek, Modern
  411.     $lang['elx'_LANGUAGE_ELX// Elamite
  412.     $lang['eng'_LANGUAGE_ENG// English
  413.     $lang['enm'_LANGUAGE_ENM// English, Middle
  414.     $lang['epo'_LANGUAGE_EPO// Esperanto
  415.     $lang['est'_LANGUAGE_EST// Estonian
  416.     $lang['eus'_LANGUAGE_EUS// Basque
  417.     $lang['ewe'_LANGUAGE_EWE// Ewe
  418.     $lang['ewo'_LANGUAGE_EWO// Ewondo
  419.     $lang['fan'_LANGUAGE_FAN// Fang
  420.     $lang['fao'_LANGUAGE_FAO// Faroese
  421.     $lang['fas'_LANGUAGE_FAS// Persian
  422.     $lang['fat'_LANGUAGE_FAT// Fanti
  423.     $lang['fij'_LANGUAGE_FIJ// Fijian
  424.     $lang['fin'_LANGUAGE_FIN// Finnish
  425.     $lang['fiu'_LANGUAGE_FIU// Finno-Ugrian (Other)
  426.     $lang['fon'_LANGUAGE_FON// Fon
  427.     $lang['fra'_LANGUAGE_FRA// French
  428.     $lang['frm'_LANGUAGE_FRM// French, Middle
  429.     $lang['fro'_LANGUAGE_FRO// French, Old
  430.     $lang['fry'_LANGUAGE_FRY// Frisian
  431.     $lang['ful'_LANGUAGE_FUL// Fulah
  432.     $lang['fur'_LANGUAGE_FUR// Friulian
  433.     $lang['gaa'_LANGUAGE_GAA// Ga
  434.     $lang['gay'_LANGUAGE_GAY// Gayo
  435.     $lang['gba'_LANGUAGE_GBA// Gbaya
  436.     $lang['gem'_LANGUAGE_GEM// Germanic (Other)
  437.     $lang['gez'_LANGUAGE_GEZ// Geez
  438.     $lang['gil'_LANGUAGE_GIL// Gilbertese
  439.     $lang['gla'_LANGUAGE_GLA// Gaelic; Scottish Gaelic
  440.     $lang['gle'_LANGUAGE_GLE// Irish
  441.     $lang['glg'_LANGUAGE_GLG// Galician
  442.     $lang['glv'_LANGUAGE_GLV// Manx
  443.     $lang['gmh'_LANGUAGE_GMH// German, Middle High
  444.     $lang['goh'_LANGUAGE_GOH// German, Old High
  445.     $lang['gon'_LANGUAGE_GON// Gondi
  446.     $lang['gor'_LANGUAGE_GOR// Gorontalo
  447.     $lang['got'_LANGUAGE_GOT// Gothic
  448.     $lang['grb'_LANGUAGE_GRB// Grebo
  449.     $lang['grc'_LANGUAGE_GRC// Greek, Ancient
  450.     $lang['grn'_LANGUAGE_GRN// Guarani
  451.     $lang['guj'_LANGUAGE_GUJ// Gujarati
  452.     $lang['gwi'_LANGUAGE_GWI// Gwichin
  453.     $lang['hai'_LANGUAGE_HAI// Haida
  454.     $lang['hat'_LANGUAGE_HAT// Haitian; Haitian Creole
  455.     $lang['hau'_LANGUAGE_HAU// Hausa
  456.     $lang['haw'_LANGUAGE_HAW// Hawaiian
  457.     $lang['heb'_LANGUAGE_HEB// Hebrew
  458.     $lang['her'_LANGUAGE_HER// Herero
  459.     $lang['hil'_LANGUAGE_HIL// Hiligaynon
  460.     $lang['him'_LANGUAGE_HIM// Himachali
  461.     $lang['hin'_LANGUAGE_HIN// Hindi
  462.     $lang['hit'_LANGUAGE_HIT// Hittite
  463.     $lang['hmn'_LANGUAGE_HMN// Hmong
  464.     $lang['hmo'_LANGUAGE_HMO// Hiri Motu
  465.     $lang['hrv'_LANGUAGE_HRV// Croatian
  466.     $lang['hsb'_LANGUAGE_HSB// Upper Sorbian
  467.     $lang['hun'_LANGUAGE_HUN// Hungarian
  468.     $lang['hup'_LANGUAGE_HUP// Hupa
  469.     $lang['hye'_LANGUAGE_HYE// Armenian
  470.     $lang['iba'_LANGUAGE_IBA// Iban
  471.     $lang['ibo'_LANGUAGE_IBO// Igbo
  472.     $lang['ido'_LANGUAGE_IDO// Ido
  473.     $lang['iii'_LANGUAGE_III// Sichuan Yi
  474.     $lang['ijo'_LANGUAGE_IJO// Ijo
  475.     $lang['iku'_LANGUAGE_IKU// Inuktitut
  476.     $lang['ile'_LANGUAGE_ILE// Interlingue
  477.     $lang['ilo'_LANGUAGE_ILO// Iloko
  478.     $lang['ina'_LANGUAGE_INA// Interlingua (International Auxiliary Language Association)
  479.     $lang['inc'_LANGUAGE_INC// Indic (Other)
  480.     $lang['ind'_LANGUAGE_IND// Indonesian
  481.     $lang['ine'_LANGUAGE_INE// Indo-European (Other)
  482.     $lang['inh'_LANGUAGE_INH// Ingush
  483.     $lang['ipk'_LANGUAGE_IPK// Inupiaq
  484.     $lang['ira'_LANGUAGE_IRA// Iranian (Other)
  485.     $lang['iro'_LANGUAGE_IRO// Iroquoian languages
  486.     $lang['isl'_LANGUAGE_ISL// Icelandic
  487.     $lang['ita'_LANGUAGE_ITA// Italian
  488.     $lang['jav'_LANGUAGE_JAV// Javanese
  489.     $lang['jbo'_LANGUAGE_JBO// Lojban
  490.     $lang['jpn'_LANGUAGE_JPN// Japanese
  491.     $lang['jpr'_LANGUAGE_JPR// Judeo-Persian
  492.     $lang['jrb'_LANGUAGE_JRB// Judeo-Arabic
  493.     $lang['kaa'_LANGUAGE_KAA// Kara-Kalpak
  494.     $lang['kab'_LANGUAGE_KAB// Kabyle
  495.     $lang['kac'_LANGUAGE_KAC// Kachin
  496.     $lang['kal'_LANGUAGE_KAL// Kalaallisut; Greenlandic
  497.     $lang['kam'_LANGUAGE_KAM// Kamba
  498.     $lang['kan'_LANGUAGE_KAN// Kannada
  499.     $lang['kar'_LANGUAGE_KAR// Karen
  500.     $lang['kas'_LANGUAGE_KAS// Kashmiri
  501.     $lang['kat'_LANGUAGE_KAT// Georgian
  502.     $lang['kau'_LANGUAGE_KAU// Kanuri
  503.     $lang['kaw'_LANGUAGE_KAW// Kawi
  504.     $lang['kaz'_LANGUAGE_KAZ// Kazakh
  505.     $lang['kbd'_LANGUAGE_KBD// Kabardian
  506.     $lang['kha'_LANGUAGE_KHA// Khasi
  507.     $lang['khi'_LANGUAGE_KHI// Khoisan (Other)
  508.     $lang['khm'_LANGUAGE_KHM// Khmer
  509.     $lang['kho'_LANGUAGE_KHO// Khotanese
  510.     $lang['kik'_LANGUAGE_KIK// Kikuyu; Gikuyu
  511.     $lang['kin'_LANGUAGE_KIN// Kinyarwanda
  512.     $lang['kir'_LANGUAGE_KIR// Kirghiz
  513.     $lang['kmb'_LANGUAGE_KMB// Kimbundu
  514.     $lang['kok'_LANGUAGE_KOK// Konkani
  515.     $lang['kom'_LANGUAGE_KOM// Komi
  516.     $lang['kon'_LANGUAGE_KON// Kongo
  517.     $lang['kor'_LANGUAGE_KOR// Korean
  518.     $lang['kos'_LANGUAGE_KOS// Kosraean
  519.     $lang['kpe'_LANGUAGE_KPE// Kpelle
  520.     $lang['krc'_LANGUAGE_KRC// Karachay-Balkar
  521.     $lang['kro'_LANGUAGE_KRO// Kru
  522.     $lang['kru'_LANGUAGE_KRU// Kurukh
  523.     $lang['kua'_LANGUAGE_KUA// Kuanyama; Kwanyama
  524.     $lang['kum'_LANGUAGE_KUM// Kumyk
  525.     $lang['kur'_LANGUAGE_KUR// Kurdish
  526.     $lang['kut'_LANGUAGE_KUT// Kutenai
  527.     $lang['lad'_LANGUAGE_LAD// Ladino
  528.     $lang['lah'_LANGUAGE_LAH// Lahnda
  529.     $lang['lam'_LANGUAGE_LAM// Lamba
  530.     $lang['lao'_LANGUAGE_LAO// Lao
  531.     $lang['lat'_LANGUAGE_LAT// Latin
  532.     $lang['lav'_LANGUAGE_LAV// Latvian
  533.     $lang['lez'_LANGUAGE_LEZ// Lezghian
  534.     $lang['lim'_LANGUAGE_LIM// Limburgan; Limburger; Limburgish
  535.     $lang['lin'_LANGUAGE_LIN// Lingala
  536.     $lang['lit'_LANGUAGE_LIT// Lithuanian
  537.     $lang['lol'_LANGUAGE_LOL// Mongo
  538.     $lang['loz'_LANGUAGE_LOZ// Lozi
  539.     $lang['ltz'_LANGUAGE_LTZ// Luxembourgish; Letzeburgesch
  540.     $lang['lua'_LANGUAGE_LUA// Luba-Lulua
  541.     $lang['lub'_LANGUAGE_LUB// Luba-Katanga
  542.     $lang['lug'_LANGUAGE_LUG// Ganda
  543.     $lang['lui'_LANGUAGE_LUI// Luiseno
  544.     $lang['lun'_LANGUAGE_LUN// Lunda
  545.     $lang['luo'_LANGUAGE_LUO// Luo (Kenya and Tanzania)
  546.     $lang['lus'_LANGUAGE_LUS// lushai
  547.     $lang['mad'_LANGUAGE_MAD// Madurese
  548.     $lang['mag'_LANGUAGE_MAG// Magahi
  549.     $lang['mah'_LANGUAGE_MAH// Marshallese
  550.     $lang['mai'_LANGUAGE_MAI// Maithili
  551.     $lang['mak'_LANGUAGE_MAK// Makasar
  552.     $lang['mal'_LANGUAGE_MAL// Malayalam
  553.     $lang['man'_LANGUAGE_MAN// Mandingo
  554.     $lang['map'_LANGUAGE_MAP// Austronesian (Other)
  555.     $lang['mar'_LANGUAGE_MAR// Marathi
  556.     $lang['mas'_LANGUAGE_MAS// Masai
  557.     $lang['mdf'_LANGUAGE_MDF// Moksha
  558.     $lang['mdr'_LANGUAGE_MDR// Mandar
  559.     $lang['men'_LANGUAGE_MEN// Mende
  560.     $lang['mga'_LANGUAGE_MGA// Irish, Middle
  561.     $lang['mic'_LANGUAGE_MIC// Micmac
  562.     $lang['min'_LANGUAGE_MIN// Minangkabau
  563.     $lang['mis'_LANGUAGE_MIS// Miscellaneous languages
  564.     $lang['mkd'_LANGUAGE_MKD// Macedonian
  565.     $lang['mkh'_LANGUAGE_MKH// Mon-Khmer (Other)
  566.     $lang['mlg'_LANGUAGE_MLG// Malagasy
  567.     $lang['mlt'_LANGUAGE_MLT// Maltese
  568.     $lang['mnc'_LANGUAGE_MNC// Manchu
  569.     $lang['mni'_LANGUAGE_MNI// Manipuri
  570.     $lang['mno'_LANGUAGE_MNO// Manobo languages
  571.     $lang['moh'_LANGUAGE_MOH// Mohawk
  572.     $lang['mol'_LANGUAGE_MOL// Moldavian
  573.     $lang['mon'_LANGUAGE_MON// Mongolian
  574.     $lang['mos'_LANGUAGE_MOS// Mossi
  575.     $lang['mri'_LANGUAGE_MRI// Maori
  576.     $lang['msa'_LANGUAGE_MSA// Malay
  577.     $lang['mul'_LANGUAGE_MUL// Multiple languages
  578.     $lang['mun'_LANGUAGE_MUN// Munda languages
  579.     $lang['mus'_LANGUAGE_MUS// Creek
  580.     $lang['mwr'_LANGUAGE_MWR// Marwari
  581.     $lang['mya'_LANGUAGE_MYA// Burmese
  582.     $lang['myn'_LANGUAGE_MYN// Mayan languages
  583.     $lang['myv'_LANGUAGE_MYV// Erzya
  584.     $lang['nah'_LANGUAGE_NAH// Nahuatl
  585.     $lang['nai'_LANGUAGE_NAI// North American Indian
  586.     $lang['nap'_LANGUAGE_NAP// Neapolitan
  587.     $lang['nau'_LANGUAGE_NAU// Nauru
  588.     $lang['nav'_LANGUAGE_NAV// Navajo; Navaho
  589.     $lang['nbl'_LANGUAGE_NBL// Ndebele, South; South Ndebele
  590.     $lang['nde'_LANGUAGE_NDE// Ndebele, North; North Ndebele
  591.     $lang['ndo'_LANGUAGE_NDO// Ndonga
  592.     $lang['nds'_LANGUAGE_NDS// Low German; Low Saxon; German, Low; Saxon, Low
  593.     $lang['nep'_LANGUAGE_NEP// Nepali
  594.     $lang['new'_LANGUAGE_NEW// Newari; Nepal Bhasa
  595.     $lang['nia'_LANGUAGE_NIA// Nias
  596.     $lang['nic'_LANGUAGE_NIC// Niger-Kordofanian (Other)
  597.     $lang['niu'_LANGUAGE_NIU// Niuean
  598.     $lang['nld'_LANGUAGE_NLD// Dutch; Flemish
  599.     $lang['nno'_LANGUAGE_NNO// Norwegian Nynorsk; Nynorsk, Norwegian
  600.     $lang['nob'_LANGUAGE_NOB// Norwegian Bokm?; Bokm?, Norwegian
  601.     $lang['nog'_LANGUAGE_NOG// Nogai
  602.     $lang['non'_LANGUAGE_NON// Norse, Old
  603.     $lang['nor'_LANGUAGE_NOR// Norwegian
  604.     $lang['nso'_LANGUAGE_NSO// Sotho, Northern
  605.     $lang['nub'_LANGUAGE_NUB// Nubian languages
  606.     $lang['nwc'_LANGUAGE_NWC// Classical Newari; Old Newari; Classical Nepal Bhasa
  607.     $lang['nya'_LANGUAGE_NYA// Chichewa; Chewa; Nyanja
  608.     $lang['nym'_LANGUAGE_NYM// Nyamwezi
  609.     $lang['nyn'_LANGUAGE_NYN// Nyankole
  610.     $lang['nyo'_LANGUAGE_NYO// Nyoro
  611.     $lang['nzi'_LANGUAGE_NZI// Nzima
  612.     $lang['oci'_LANGUAGE_OCI// Occitan; Proven?l
  613.     $lang['oji'_LANGUAGE_OJI// Ojibwa
  614.     $lang['ori'_LANGUAGE_ORI// Oriya
  615.     $lang['orm'_LANGUAGE_ORM// Oromo
  616.     $lang['osa'_LANGUAGE_OSA// Osage
  617.     $lang['oss'_LANGUAGE_OSS// Ossetian; Ossetic
  618.     $lang['ota'_LANGUAGE_OTA// Turkish, Ottoman
  619.     $lang['oto'_LANGUAGE_OTO// Otomian languages
  620.     $lang['paa'_LANGUAGE_PAA// Papuan (Other)
  621.     $lang['pag'_LANGUAGE_PAG// Pangasinan
  622.     $lang['pal'_LANGUAGE_PAL// Pahlavi
  623.     $lang['pam'_LANGUAGE_PAM// Pampanga
  624.     $lang['pan'_LANGUAGE_PAN// Panjabi; Punjabi
  625.     $lang['pap'_LANGUAGE_PAP// Papiamento
  626.     $lang['pau'_LANGUAGE_PAU// Palauan
  627.     $lang['peo'_LANGUAGE_PEO// Persian, Old
  628.     $lang['phi'_LANGUAGE_PHI// Philippine (Other)
  629.     $lang['phn'_LANGUAGE_PHN// Phoenician
  630.     $lang['pli'_LANGUAGE_PLI// Pali
  631.     $lang['pol'_LANGUAGE_POL// Polish
  632.     $lang['pon'_LANGUAGE_PON// Pohnpeian
  633.     $lang['por'_LANGUAGE_POR// Portuguese
  634.     $lang['pra'_LANGUAGE_PRA// Prakrit languages
  635.     $lang['pro'_LANGUAGE_PRO// Proven?l, Old
  636.     $lang['pus'_LANGUAGE_PUS// Pushto
  637.     $lang['qaa-qtz'_LANGUAGE_QAA_QTZ// Reserved for local use
  638.     $lang['que'_LANGUAGE_QUE// Quechua
  639.     $lang['raj'_LANGUAGE_RAJ// Rajasthani
  640.     $lang['rap'_LANGUAGE_RAP// Rapanui
  641.     $lang['rar'_LANGUAGE_RAR// Rarotongan
  642.     $lang['roa'_LANGUAGE_ROA// Romance (Other)
  643.     $lang['roh'_LANGUAGE_ROH// Raeto-Romance
  644.     $lang['rom'_LANGUAGE_ROM// Romany
  645.     $lang['ron'_LANGUAGE_RON// Romanian
  646.     $lang['run'_LANGUAGE_RUN// Rundi
  647.     $lang['rus'_LANGUAGE_RUS// Russian
  648.     $lang['sad'_LANGUAGE_SAD// Sandawe
  649.     $lang['sag'_LANGUAGE_SAG// Sango
  650.     $lang['sah'_LANGUAGE_SAH// Yakut
  651.     $lang['sai'_LANGUAGE_SAI// South American Indian (Other)
  652.     $lang['sal'_LANGUAGE_SAL// Salishan languages
  653.     $lang['sam'_LANGUAGE_SAM// Samaritan Aramaic
  654.     $lang['san'_LANGUAGE_SAN// Sanskrit
  655.     $lang['sas'_LANGUAGE_SAS// Sasak
  656.     $lang['sat'_LANGUAGE_SAT// Santali
  657.     $lang['sco'_LANGUAGE_SCO// Scots
  658.     $lang['scr'_LANGUAGE_SCR// Serbo-Croatian
  659.     $lang['sel'_LANGUAGE_SEL// Selkup
  660.     $lang['sem'_LANGUAGE_SEM// Semitic (Other)
  661.     $lang['sga'_LANGUAGE_SGA// Irish, Old
  662.     $lang['sgn'_LANGUAGE_SGN// Sign Languages
  663.     $lang['shn'_LANGUAGE_SHN// Shan
  664.     $lang['sid'_LANGUAGE_SID// Sidamo
  665.     $lang['sin'_LANGUAGE_SIN// Sinhalese
  666.     $lang['sio'_LANGUAGE_SIO// Siouan languages
  667.     $lang['sit'_LANGUAGE_SIT// Sino-Tibetan (Other)
  668.     $lang['sla'_LANGUAGE_SLA// Slavic (Other)
  669.     $lang['slk'_LANGUAGE_SLK// Slovak
  670.     $lang['slv'_LANGUAGE_SLV// Slovenian
  671.     $lang['sma'_LANGUAGE_SMA// Southern Sami
  672.     $lang['sme'_LANGUAGE_SME// Northern Sami
  673.     $lang['smi'_LANGUAGE_SMI// Sami languages (Other)
  674.     $lang['smj'_LANGUAGE_SMJ// Lule Sami
  675.     $lang['smn'_LANGUAGE_SMN// Inari Sami
  676.     $lang['smo'_LANGUAGE_SMO// Samoan
  677.     $lang['sms'_LANGUAGE_SMS// Skolt Sami
  678.     $lang['sna'_LANGUAGE_SNA// Shona
  679.     $lang['snd'_LANGUAGE_SND// Sindhi
  680.     $lang['snk'_LANGUAGE_SNK// Soninke
  681.     $lang['sog'_LANGUAGE_SOG// Sogdian
  682.     $lang['som'_LANGUAGE_SOM// Somali
  683.     $lang['son'_LANGUAGE_SON// Songhai
  684.     $lang['sot'_LANGUAGE_SOT// Sotho, Southern
  685.     $lang['spa'_LANGUAGE_SPA// Spanish; Castilian
  686.     $lang['sqi'_LANGUAGE_SQI// Albanian
  687.     $lang['srd'_LANGUAGE_SRD// Sardinian
  688.     $lang['srp'_LANGUAGE_SRP// Serbian
  689.     $lang['srr'_LANGUAGE_SRR// Serer
  690.     $lang['ssa'_LANGUAGE_SSA// Nilo-Saharan (Other)
  691.     $lang['ssw'_LANGUAGE_SSW// Swati
  692.     $lang['suk'_LANGUAGE_SUK// Sukuma
  693.     $lang['sun'_LANGUAGE_SUN// Sundanese
  694.     $lang['sus'_LANGUAGE_SUS// Susu
  695.     $lang['sux'_LANGUAGE_SUX// Sumerian
  696.     $lang['swa'_LANGUAGE_SWA// Swahili
  697.     $lang['swe'_LANGUAGE_SWE// Swedish
  698.     $lang['syr'_LANGUAGE_SYR// Syriac
  699.     $lang['tah'_LANGUAGE_TAH// Tahitian
  700.     $lang['tai'_LANGUAGE_TAI// Tai (Other)
  701.     $lang['tam'_LANGUAGE_TAM// Tamil
  702.     $lang['tat'_LANGUAGE_TAT// Tatar
  703.     $lang['tel'_LANGUAGE_TEL// Telugu
  704.     $lang['tib'_LANGUAGE_TIB// Tibetan
  705.     $lang['tem'_LANGUAGE_TEM// Timne
  706.     $lang['ter'_LANGUAGE_TER// Tereno
  707.     $lang['tet'_LANGUAGE_TET// Tetum
  708.     $lang['tgk'_LANGUAGE_TGK// Tajik
  709.     $lang['tgl'_LANGUAGE_TGL// Tagalog
  710.     $lang['tha'_LANGUAGE_THA// Thai
  711.     $lang['tig'_LANGUAGE_TIG// Tigre
  712.     $lang['tir'_LANGUAGE_TIR// Tigrinya
  713.     $lang['tiv'_LANGUAGE_TIV// Tiv
  714.     $lang['tkl'_LANGUAGE_TKL// Tokelau
  715.     $lang['tlh'_LANGUAGE_TLH// Klingon; tlhlngan-Hol
  716.     $lang['tli'_LANGUAGE_TLI// Tlingit
  717.     $lang['tmh'_LANGUAGE_TMH// Tamashek
  718.     $lang['tog'_LANGUAGE_TOG// Tonga (Nyasa)
  719.     $lang['ton'_LANGUAGE_TON// Tonga (Tonga Islands)
  720.     $lang['tpi'_LANGUAGE_TPI// Tok Pisin
  721.     $lang['tsi'_LANGUAGE_TSI// Tsimshian
  722.     $lang['tsn'_LANGUAGE_TSN// Tswana
  723.     $lang['tso'_LANGUAGE_TSO// Tsonga
  724.     $lang['tuk'_LANGUAGE_TUK// Turkmen
  725.     $lang['tum'_LANGUAGE_TUM// Tumbuka
  726.     $lang['tup'_LANGUAGE_TUP// Tupi languages
  727.     $lang['tur'_LANGUAGE_TUR// Turkish
  728.     $lang['tut'_LANGUAGE_TUT// Altaic (Other)
  729.     $lang['tvl'_LANGUAGE_TVL// Tuvalu
  730.     $lang['twi'_LANGUAGE_TWI// Twi
  731.     $lang['tyv'_LANGUAGE_TYV// Tuvinian
  732.     $lang['udm'_LANGUAGE_UDM// Udmurt
  733.     $lang['uga'_LANGUAGE_UGA// Ugaritic
  734.     $lang['uig'_LANGUAGE_UIG// Uighur
  735.     $lang['ukr'_LANGUAGE_UKR// Ukrainian
  736.     $lang['umb'_LANGUAGE_UMB// Umbundu
  737.     $lang['und'_LANGUAGE_UND// Undetermined
  738.     $lang['urd'_LANGUAGE_URD// Urdu
  739.     $lang['uzb'_LANGUAGE_UZB// Uzbek
  740.     $lang['vai'_LANGUAGE_VAI// Vai
  741.     $lang['ven'_LANGUAGE_VEN// Venda
  742.     $lang['vie'_LANGUAGE_VIE// Vietnamese
  743.     $lang['vol'_LANGUAGE_VOL// Volapk
  744.     $lang['vot'_LANGUAGE_VOT// Votic
  745.     $lang['wak'_LANGUAGE_WAK// Wakashan languages
  746.     $lang['wal'_LANGUAGE_WAL// Walamo
  747.     $lang['war'_LANGUAGE_WAR// Waray
  748.     $lang['was'_LANGUAGE_WAS// Washo
  749.     $lang['wen'_LANGUAGE_WEN// Sorbian languages
  750.     $lang['wln'_LANGUAGE_WLN// Walloon
  751.     $lang['wol'_LANGUAGE_WOL// Wolof
  752.     $lang['xal'_LANGUAGE_XAL// Kalmyk
  753.     $lang['xho'_LANGUAGE_XHO// Xhosa
  754.     $lang['yao'_LANGUAGE_YAO// Yao
  755.     $lang['yap'_LANGUAGE_YAP// Yapese
  756.     $lang['yid'_LANGUAGE_YID// Yiddish
  757.     $lang['yor'_LANGUAGE_YOR// Yoruba
  758.     $lang['ypk'_LANGUAGE_YPK// Yupik languages
  759.     $lang['zap'_LANGUAGE_ZAP// Zapotec
  760.     $lang['zen'_LANGUAGE_ZEN// Zenaga
  761.     $lang['zha'_LANGUAGE_ZHA// Zhuang; Chuang
  762.     $lang['zho'_LANGUAGE_ZHO// Chinese
  763.     $lang['znd'_LANGUAGE_ZND// Zande
  764.     $lang['zul'_LANGUAGE_ZUL// Zulu
  765.     $lang['zun'_LANGUAGE_ZUN// Zuni
  766.     // Non-ISO entries are written as x_[language name]
  767.     $lang['x_all'_LANGUAGE_X_ALL_LANGUAGES// all languages
  768.     $lang['x_brazilian_portuguese'_LANGUAGE_X_BRAZILIAN_PORTUGUESE// Brazilian Portuguese
  769.     $lang['x_rus_koi8r'_LANGUAGE_X_RUS_KOI8R// Russian KOI8-R
  770.     // end of list
  771.  
  772.     return $lang;
  773. }
  774.  
  775. /**
  776.  * Language list for auto detection of browser language
  777.  */
  778. function cnvlanguagelist()
  779. {
  780.     $cnvlang['af'"eng";
  781.     $cnvlang['sq'"eng";
  782.     $cnvlang['ar-bh'"ara";
  783.     $cnvlang['eu'"eng";
  784.     $cnvlang['be'"eng";
  785.     $cnvlang['bg'"bul";
  786.     $cnvlang['ca'"eng";
  787.     $cnvlang['zh-cn''zho';
  788.     $cnvlang['zh-tw''zho';
  789.     $cnvlang['hr''cro';
  790.     $cnvlang['cs''ces';
  791.     $cnvlang['da''dan';
  792.     $cnvlang['nl''nld';
  793.     $cnvlang['nl-be''nld';
  794.     $cnvlang['nl-nl''nld';
  795.     $cnvlang['en''eng';
  796.     $cnvlang['en-au''eng';
  797.     $cnvlang['en-bz''eng';
  798.     $cnvlang['en-ca''eng';
  799.     $cnvlang['en-ie''eng';
  800.     $cnvlang['en-jm''eng';
  801.     $cnvlang['en-nz''eng';
  802.     $cnvlang['en-ph''eng';
  803.     $cnvlang['en-za''eng';
  804.     $cnvlang['en-tt''eng';
  805.     $cnvlang['en-gb''eng';
  806.     $cnvlang['en-us''eng';
  807.     $cnvlang['en-zw''eng';
  808.     $cnvlang['fo''eng';
  809.     $cnvlang['fi''fin';
  810.     $cnvlang['fr''fra';
  811.     $cnvlang['fr-be''fra';
  812.     $cnvlang['fr-ca''fra';
  813.     $cnvlang['fr-fr''fra';
  814.     $cnvlang['fr-lu''fra';
  815.     $cnvlang['fr-mc''fra';
  816.     $cnvlang['fr-ch''fra';
  817.     $cnvlang['gl''eng';
  818.     $cnvlang['gd''eng';
  819.     $cnvlang['de''deu';
  820.     $cnvlang['de-at''deu';
  821.     $cnvlang['de-de''deu';
  822.     $cnvlang['de-li''deu';
  823.     $cnvlang['de-lu''deu';
  824.     $cnvlang['de-ch''deu';
  825.     $cnvlang['el''ell';
  826.     $cnvlang['hu''hun';
  827.     $cnvlang['is''isl';
  828.     $cnvlang['in''ind';
  829.     $cnvlang['ga''eng';
  830.     $cnvlang['it''ita';
  831.     $cnvlang['it-it''ita';
  832.     $cnvlang['it-ch''ita';
  833.     $cnvlang['ja''jpn';
  834.     $cnvlang['ko''kor';
  835.     $cnvlang['mk''mkd';
  836.     $cnvlang['no''nor';
  837.     $cnvlang['pl''pol';
  838.     $cnvlang['pt''por';
  839.     $cnvlang['pt-br''por';
  840.     $cnvlang['pt-pt''por';
  841.     $cnvlang['ro''ron';
  842.     $cnvlang['ro-mo''ron';
  843.     $cnvlang['ro-ro''ron';
  844.     $cnvlang['ru''rus';
  845.     $cnvlang['KOI8-R''rus';
  846.     $cnvlang['ru-mo''rus';
  847.     $cnvlang['ru-ru''rus';
  848.     $cnvlang['sr''eng';
  849.     $cnvlang['sk''slv';
  850.     $cnvlang['sl''slv';
  851.     $cnvlang['bo''tib';
  852.     $cnvlang['es''spa';
  853.     $cnvlang['es-ar''spa';
  854.     $cnvlang['es-bo''spa';
  855.     $cnvlang['es-cl''spa';
  856.     $cnvlang['es-co''spa';
  857.     $cnvlang['es-cr''spa';
  858.     $cnvlang['es-do''spa';
  859.     $cnvlang['es-ec''spa';
  860.     $cnvlang['es-sv''spa';
  861.     $cnvlang['es-gt''spa';
  862.     $cnvlang['es-hn''spa';
  863.     $cnvlang['es-mx''spa';
  864.     $cnvlang['es-ni''spa';
  865.     $cnvlang['es-pa''spa';
  866.     $cnvlang['es-py''spa';
  867.     $cnvlang['es-pe''spa';
  868.     $cnvlang['es-pr''spa';
  869.     $cnvlang['es-es''spa';
  870.     $cnvlang['es-uy''spa';
  871.     $cnvlang['es-ve''spa';
  872.     $cnvlang['sv''swe';
  873.     $cnvlang['sv-fi''swe';
  874.     $cnvlang['sv-se''swe';
  875.     $cnvlang['th''tha';
  876.     $cnvlang['tr''tur';
  877.     $cnvlang['uk''ukr';
  878.     $cnvlang['ar''ara';
  879.     $cnvlang['ar-ae''ara';
  880.     $cnvlang['ar-bh''ara';
  881.     $cnvlang['ar-dz''ara';
  882.     $cnvlang['ar-eg''ara';
  883.     $cnvlang['ar-iq''ara';
  884.     $cnvlang['ar-jo''ara';
  885.     $cnvlang['ar-kw''ara';
  886.     $cnvlang['ar-lb''ara';
  887.     $cnvlang['ar-ly''ara';
  888.     $cnvlang['ar-ma''ara';
  889.     $cnvlang['ar-mr''ara';
  890.     $cnvlang['ar-om''ara';
  891.     $cnvlang['ar-qa''ara';
  892.     $cnvlang['ar-sa''ara';
  893.     $cnvlang['ar-sd''ara';
  894.     $cnvlang['ar-so''ara';
  895.     $cnvlang['ar-sy''ara';
  896.     $cnvlang['ar-tn''ara';
  897.     $cnvlang['ar-ye''ara';
  898.     $cnvlang['ar-km''ara';
  899.     $cnvlang['ar-dj''ara';
  900.     asort($cnvlang);
  901.  
  902.     return $cnvlang;
  903. }
  904.  
  905. function rsslanguagelist()
  906. {
  907.     $rsslang['af'"Afrikaans";
  908.     $rsslang['sq'"Albanian";
  909.     $rsslang['ar-bh'"Arabic (Bahrain)";
  910.     $rsslang['eu'"Basque";
  911.     $rsslang['be'"Belarusian";
  912.     $rsslang['bg'"Bulgarian";
  913.     $rsslang['ca'"Catalan";
  914.     $rsslang['zh-cn''Chinese (Simplified)';
  915.     $rsslang['zh-tw''Chinese (Traditional)';
  916.     $rsslang['hr''Croatian';
  917.     $rsslang['cs''Czech';
  918.     $rsslang['da''Danish';
  919.     $rsslang['nl''Dutch';
  920.     $rsslang['nl-be''Dutch (Belgium)';
  921.     $rsslang['nl-nl''Dutch (Netherlands)';
  922.     $rsslang['en''English';
  923.     $rsslang['en-au''English (Australia)';
  924.     $rsslang['en-bz''English (Belize)';
  925.     $rsslang['en-ca''English (Canada)';
  926.     $rsslang['en-ie''English (Ireland)';
  927.     $rsslang['en-jm''English (Jamaica)';
  928.     $rsslang['en-nz''English (New Zealand)';
  929.     $rsslang['en-ph''English (Phillipines)';
  930.     $rsslang['en-za''English (South Africa)';
  931.     $rsslang['en-tt''English (Trinidad)';
  932.     $rsslang['en-gb''English (United Kingdom)';
  933.     $rsslang['en-us''English (United States)';
  934.     $rsslang['en-zw''English (Zimbabwe)';
  935.     $rsslang['fo''Faeroese';
  936.     $rsslang['fi''Finnish';
  937.     $rsslang['fr''French';
  938.     $rsslang['fr-be''French (Belgium)';
  939.     $rsslang['fr-ca''French (Canada)';
  940.     $rsslang['fr-fr''French (France)';
  941.     $rsslang['fr-lu''French (Luxembourg)';
  942.     $rsslang['fr-mc''French (Monaco)';
  943.     $rsslang['fr-ch''French (Switzerland)';
  944.     $rsslang['gl''Galician';
  945.     $rsslang['gd''Gaelic';
  946.     $rsslang['de''German';
  947.     $rsslang['de-at''German (Austria)';
  948.     $rsslang['de-de''German (Germany)';
  949.     $rsslang['de-li''German (Liechtenstein)';
  950.     $rsslang['de-lu''German (Luxembourg)';
  951.     $rsslang['de-ch''German (Switzerland)';
  952.     $rsslang['el''Greek';
  953.     $rsslang['hu''Hungarian';
  954.     $rsslang['is''Icelandic';
  955.     $rsslang['in''Indonesian';
  956.     $rsslang['ga''Irish';
  957.     $rsslang['it''Italian';
  958.     $rsslang['it-it''Italian (Italy)';
  959.     $rsslang['it-ch''Italian (Switzerland)';
  960.     $rsslang['ja''Japanese';
  961.     $rsslang['ko''Korean';
  962.     $rsslang['mk''Macedonian';
  963.     $rsslang['no''Norwegian';
  964.     $rsslang['pl''Polish';
  965.     $rsslang['pt''Portuguese';
  966.     $rsslang['pt-br''Portuguese (Brazil)';
  967.     $rsslang['pt-pt''Portuguese (Portugal)';
  968.     $rsslang['ro''Romanian';
  969.     $rsslang['ro-mo''Romanian (Moldova)';
  970.     $rsslang['ro-ro''Romanian (Romania)';
  971.     $rsslang['ru''Russian';
  972.     $rsslang['KOI8-R''Russian KOI8-R';
  973.     $rsslang['ru-mo''Russian (Moldova)';
  974.     $rsslang['ru-ru''Russian (Russia)';
  975.     $rsslang['sr''Serbian';
  976.     $rsslang['sk''Slovak';
  977.     $rsslang['sl''Slovenian';
  978.     $rsslang['es''Spanish';
  979.     $rsslang['es-ar''Spanish (Argentina)';
  980.     $rsslang['es-bo''Spanish (Bolivia)';
  981.     $rsslang['es-cl''Spanish (Chile)';
  982.     $rsslang['es-co''Spanish (Colombia)';
  983.     $rsslang['es-cr''Spanish (Costa Rica)';
  984.     $rsslang['es-do''Spanish (Dominican Republic)';
  985.     $rsslang['es-ec''Spanish (Ecuador)';
  986.     $rsslang['es-sv''Spanish (El Salvador)';
  987.     $rsslang['es-gt''Spanish (Guatemala)';
  988.     $rsslang['es-hn''Spanish (Honduras)';
  989.     $rsslang['es-mx''Spanish (Mexico)';
  990.     $rsslang['es-ni''Spanish (Nicaragua)';
  991.     $rsslang['es-pa''Spanish (Panama)';
  992.     $rsslang['es-py''Spanish (Paraguay)';
  993.     $rsslang['es-pe''Spanish (Peru)';
  994.     $rsslang['es-pr''Spanish (Puerto Rico)';
  995.     $rsslang['es-es''Spanish (Spain)';
  996.     $rsslang['es-uy''Spanish (Uruguay)';
  997.     $rsslang['es-ve''Spanish (Venezuela)';
  998.     $rsslang['sv''Swedish';
  999.     $rsslang['sv-fi''Swedish (Finland)';
  1000.     $rsslang['sv-se''Swedish (Sweden)';
  1001.     $rsslang['th''Thai';
  1002.     $rsslang['bo''Tibetan';
  1003.     $rsslang['tr''Turkish';
  1004.     $rsslang['uk''Ukranian';
  1005.     $rsslang['ar''Arabic';
  1006.     $rsslang['ar-ae''Arabic (United Arab Emirates)';
  1007.     $rsslang['ar-bh''Arabic (Bahrain)';
  1008.     $rsslang['ar-dz''Arabic (Algeria)';
  1009.     $rsslang['ar-eg''Arabic (Egypt)';
  1010.     $rsslang['ar-iq''Arabic (Iraq)';
  1011.     $rsslang['ar-jo''Arabic (Jordan)';
  1012.     $rsslang['ar-kw''Arabic (Kuwait)';
  1013.     $rsslang['ar-lb''Arabic (Lebanon)';
  1014.     $rsslang['ar-ly''Arabic (Libya)';
  1015.     $rsslang['ar-ma''Arabic (Morocco)';
  1016.     $rsslang['ar-mr''Arabic (Mauritania)';
  1017.     $rsslang['ar-om''Arabic (Oman)';
  1018.     $rsslang['ar-qa''Arabic (Qatar)';
  1019.     $rsslang['ar-sa''Arabic (Saudi Arabia)';
  1020.     $rsslang['ar-sd''Arabic (Sudan)';
  1021.     $rsslang['ar-so''Arabic (Somalia)';
  1022.     $rsslang['ar-sy''Arabic (Syria)';
  1023.     $rsslang['ar-tn''Arabic (Tunisia)';
  1024.     $rsslang['ar-ye''Arabic (Yemen)';
  1025.     $rsslang['ar-km''Arabic (Comoros)';
  1026.     $rsslang['ar-dj''Arabic (Djibouti)';
  1027.     asort($rsslang);
  1028.  
  1029.     return $rsslang;
  1030. }
  1031.  
  1032.  
  1033. function countrylist ()
  1034. {
  1035.     $countries array();
  1036.  
  1037.     $countries['AD''Andorra';
  1038.     $countries['AE''United Arab Emirates';
  1039.     $countries['AF''Afghanistan';
  1040.     $countries['AG''Antigua & Barbuda';
  1041.     $countries['AI''Anguilla';
  1042.     $countries['AL''Albania';
  1043.     $countries['AM''Armenia';
  1044.     $countries['AN''Netherlands Antilles';
  1045.     $countries['AO''Angola';
  1046.     $countries['AQ''Antarctica';
  1047.     $countries['AR''Argentina';
  1048.     $countries['AS''American Samoa';
  1049.     $countries['AT''Austria';
  1050.     $countries['AU''Australia';
  1051.     $countries['AW''Aruba';
  1052.     $countries['AZ''Azerbaijan';
  1053.     $countries['BA''Bosnia and Herzegovina';
  1054.     $countries['BB''Barbados';
  1055.     $countries['BD''Bangladesh';
  1056.     $countries['BE''Belgium';
  1057.     $countries['BF''Burkina Faso';
  1058.     $countries['BG''Bulgaria';
  1059.     $countries['BH''Bahrain';
  1060.     $countries['BI''Burundi';
  1061.     $countries['BJ''Benin';
  1062.     $countries['BM''Bermuda';
  1063.     $countries['BN''Brunei Darussalam';
  1064.     $countries['BO''Bolivia';
  1065.     $countries['BR''Brazil';
  1066.     $countries['BS''Bahama';
  1067.     $countries['BT''Bhutan';
  1068.     //$countries['BU'] = 'Burma (no longer exists)';
  1069.     $countries['BV''Bouvet Island';
  1070.     $countries['BW''Botswana';
  1071.     $countries['BY''Belarus';
  1072.     $countries['BZ''Belize';
  1073.     $countries['CA''Canada';
  1074.     $countries['CC''Cocos (Keeling) Islands';
  1075.     $countries['CF''Central African Republic';
  1076.     $countries['CG''Congo';
  1077.     $countries['CH''Switzerland';
  1078.     $countries['CI''CĂ´te D\'ivoire (Ivory Coast)';
  1079.     $countries['CK''Cook Iislands';
  1080.     $countries['CL''Chile';
  1081.     $countries['CM''Cameroon';
  1082.     $countries['CN''China';
  1083.     $countries['CO''Colombia';
  1084.     $countries['CR''Costa Rica';
  1085.     //$countries['CS'] = 'Czechoslovakia (no longer exists)';
  1086.     $countries['CU''Cuba';
  1087.     $countries['CV''Cape Verde';
  1088.     $countries['CX''Christmas Island';
  1089.     $countries['CY''Cyprus';
  1090.     $countries['CZ''Czech Republic';
  1091.     //$countries['DD'] = 'German Democratic Republic (no longer exists)';
  1092.     $countries['DE''Germany';
  1093.     $countries['DJ''Djibouti';
  1094.     $countries['DK''Denmark';
  1095.     $countries['DM''Dominica';
  1096.     $countries['DO''Dominican Republic';
  1097.     $countries['DZ''Algeria';
  1098.     $countries['EC''Ecuador';
  1099.     $countries['EE''Estonia';
  1100.     $countries['EG''Egypt';
  1101.     $countries['EH''Western Sahara';
  1102.     $countries['ER''Eritrea';
  1103.     $countries['ES''Spain';
  1104.     $countries['ET''Ethiopia';
  1105.     $countries['FI''Finland';
  1106.     $countries['FJ''Fiji';
  1107.     $countries['FK''Falkland Islands (Malvinas)';
  1108.     $countries['FM''Micronesia';
  1109.     $countries['FO''Faroe Islands';
  1110.     $countries['FR''France';
  1111.     $countries['FX''France, Metropolitan';
  1112.     $countries['GA''Gabon';
  1113.     $countries['GB''United Kingdom (Great Britain)';
  1114.     $countries['GD''Grenada';
  1115.     $countries['GE''Georgia';
  1116.     $countries['GF''French Guiana';
  1117.     $countries['GH''Ghana';
  1118.     $countries['GI''Gibraltar';
  1119.     $countries['GL''Greenland';
  1120.     $countries['GM''Gambia';
  1121.     $countries['GN''Guinea';
  1122.     $countries['GP''Guadeloupe';
  1123.     $countries['GQ''Equatorial Guinea';
  1124.     $countries['GR''Greece';
  1125.     $countries['GS''South Georgia and the South Sandwich Islands';
  1126.     $countries['GT''Guatemala';
  1127.     $countries['GU''Guam';
  1128.     $countries['GW''Guinea-Bissau';
  1129.     $countries['GY''Guyana';
  1130.     $countries['HK''Hong Kong';
  1131.     $countries['HM''Heard & McDonald Islands';
  1132.     $countries['HN''Honduras';
  1133.     $countries['HR''Croatia';
  1134.     $countries['HT''Haiti';
  1135.     $countries['HU''Hungary';
  1136.     $countries['ID''Indonesia';
  1137.     $countries['IE''Ireland';
  1138.     $countries['IL''Israel';
  1139.     $countries['IM'"Isle of Man";
  1140.     $countries['IN''India';
  1141.     $countries['IO''British Indian Ocean Territory';
  1142.     $countries['IQ''Iraq';
  1143.     $countries['IR''Islamic Republic of Iran';
  1144.     $countries['IS''Iceland';
  1145.     $countries['IT''Italy';
  1146.     $countries['JM''Jamaica';
  1147.     $countries['JO''Jordan';
  1148.     $countries['JP''Japan';
  1149.     $countries['KE''Kenya';
  1150.     $countries['KG''Kyrgyzstan';
  1151.     $countries['KH''Cambodia';
  1152.     $countries['KI''Kiribati';
  1153.     $countries['KM''Comoros';
  1154.     $countries['KN''St. Kitts and Nevis';
  1155.     $countries['KP''Korea, Democratic People\'s Republic of';
  1156.     $countries['KR''Korea, Republic of';
  1157.     $countries['KW''Kuwait';
  1158.     $countries['KY''Cayman Islands';
  1159.     $countries['KZ''Kazakhstan';
  1160.     $countries['LA''Lao People\'s Democratic Republic';
  1161.     $countries['LB''Lebanon';
  1162.     $countries['LC''Saint Lucia';
  1163.     $countries['LI''Liechtenstein';
  1164.     $countries['LK''Sri Lanka';
  1165.     $countries['LR''Liberia';
  1166.     $countries['LS''Lesotho';
  1167.     $countries['LT''Lithuania';
  1168.     $countries['LU''Luxembourg';
  1169.     $countries['LV''Latvia';
  1170.     $countries['LY''Libyan Arab Jamahiriya';
  1171.     $countries['MA''Morocco';
  1172.     $countries['MC''Monaco';
  1173.     $countries['MD''Moldova, Republic of';
  1174.     $countries['MG''Madagascar';
  1175.     $countries['MH''Marshall Islands';
  1176.     $countries['ML''Mali';
  1177.     $countries['MN''Mongolia';
  1178.     $countries['MM''Myanmar';
  1179.     $countries['MO''Macau';
  1180.     $countries['MP''Northern Mariana Islands';
  1181.     $countries['MQ''Martinique';
  1182.     $countries['MR''Mauritania';
  1183.     $countries['MS''Monserrat';
  1184.     $countries['MT''Malta';
  1185.     $countries['MU''Mauritius';
  1186.     $countries['MV''Maldives';
  1187.     $countries['MW''Malawi';
  1188.     $countries['MX''Mexico';
  1189.     $countries['MY''Malaysia';
  1190.     $countries['MZ''Mozambique';
  1191.     $countries['NA''Namibia';
  1192.     $countries['NC''New Caledonia';
  1193.     $countries['NE''Niger';
  1194.     $countries['NF''Norfolk Island';
  1195.     $countries['NG''Nigeria';
  1196.     $countries['NI''Nicaragua';
  1197.     $countries['NL''Netherlands';
  1198.     $countries['NO''Norway';
  1199.     $countries['NP''Nepal';
  1200.     $countries['NR''Nauru';
  1201.     //$countries['NT'] = 'Neutral Zone (no longer exists)';
  1202.     $countries['NU''Niue';
  1203.     $countries['NZ''New Zealand';
  1204.     $countries['OM''Oman';
  1205.     $countries['PA''Panama';
  1206.     $countries['PE''Peru';
  1207.     $countries['PF''French Polynesia';
  1208.     $countries['PG''Papua New Guinea';
  1209.     $countries['PH''Philippines';
  1210.     $countries['PK''Pakistan';
  1211.     $countries['PL''Poland';
  1212.     $countries['PM''St. Pierre & Miquelon';
  1213.     $countries['PN''Pitcairn';
  1214.     $countries['PR''Puerto Rico';
  1215.     $countries['PT''Portugal';
  1216.     $countries['PW''Palau';
  1217.     $countries['PY''Paraguay';
  1218.     $countries['QA''Qatar';
  1219.     $countries['RE''RĂ©union';
  1220.     $countries['RO''Romania';
  1221.     $countries['RU''Russian Federation';
  1222.     $countries['RW''Rwanda';
  1223.     $countries['SA''Saudi Arabia';
  1224.     $countries['SB''Solomon Islands';
  1225.     $countries['SC''Seychelles';
  1226.     $countries['SD''Sudan';
  1227.     $countries['SE''Sweden';
  1228.     $countries['SG''Singapore';
  1229.     $countries['SH''St. Helena';
  1230.     $countries['SI''Slovenia';
  1231.     $countries['SJ''Svalbard & Jan Mayen Islands';
  1232.     $countries['SK''Slovakia';
  1233.     $countries['SL''Sierra Leone';
  1234.     $countries['SM''San Marino';
  1235.     $countries['SN''Senegal';
  1236.     $countries['SO''Somalia';
  1237.     $countries['SR''Suriname';
  1238.     $countries['ST''Sao Tome & Principe';
  1239.     //$countries['SU'] = 'Union of Soviet Socialist Republics (no longer exists)';
  1240.     $countries['SV''El Salvador';
  1241.     $countries['SY''Syrian Arab Republic';
  1242.     $countries['SZ''Swaziland';
  1243.     $countries['TC''Turks & Caicos Islands';
  1244.     $countries['TD''Chad';
  1245.     $countries['TF''French Southern Territories';
  1246.     $countries['TG''Togo';
  1247.     $countries['TH''Thailand';
  1248.     $countries['TJ''Tajikistan';
  1249.     $countries['TK''Tokelau';
  1250.     $countries['TM''Turkmenistan';
  1251.     $countries['TN''Tunisia';
  1252.     $countries['TO''Tonga';
  1253.     $countries['TP''East Timor';
  1254.     $countries['TR''Turkey';
  1255.     $countries['TT''Trinidad & Tobago';
  1256.     $countries['TV''Tuvalu';
  1257.     $countries['TW''Taiwan, Province of China';
  1258.     $countries['TZ''Tanzania, United Republic of';
  1259.     $countries['UA''Ukraine';
  1260.     $countries['UG''Uganda';
  1261.     $countries['UM''United States Minor Outlying Islands';
  1262.     $countries['US''United States of America';
  1263.     $countries['UY''Uruguay';
  1264.     $countries['UZ''Uzbekistan';
  1265.     $countries['VA''Vatican City State (Holy See)';
  1266.     $countries['VC''St. Vincent & the Grenadines';
  1267.     $countries['VE''Venezuela';
  1268.     $countries['VG''British Virgin Islands';
  1269.     $countries['VI''United States Virgin Islands';
  1270.     $countries['VN''Viet Nam';
  1271.     $countries['VU''Vanuatu';
  1272.     $countries['WF''Wallis & Futuna Islands';
  1273.     $countries['WS''Samoa';
  1274.     //$countries['YD'] = 'Democratic Yemen (no longer exists)';
  1275.     $countries['YE''Yemen';
  1276.     $countries['YT''Mayotte';
  1277.     $countries['YU''Yugoslavia';
  1278.     $countries['ZA''South Africa';
  1279.     $countries['ZM''Zambia';
  1280.     $countries['ZR''Zaire';
  1281.     $countries['ZW''Zimbabwe';
  1282.     $countries['ZZ''Unknown or unspecified country';
  1283.  
  1284.     return $countries;
  1285. }
  1286.  
  1287.  
  1288. /**
  1289.  * Timezone Function
  1290.  *
  1291.  * @author Fred B (fredb86)
  1292.  */
  1293. function ml_ftime($datefmt$timestamp = -1)
  1294. {
  1295.     if (!isset($datefmt)) {
  1296.         return null;
  1297.     }
  1298.  
  1299.     if ($timestamp 0{
  1300.         $timestamp time();
  1301.     }
  1302.  
  1303.     static $day_of_week_short$month_short$day_of_week_long$month_long$ml_date$thezone,
  1304.            $timezone_all$offset_all$ml_date;
  1305.  
  1306.     if (!isset($ml_date[$datefmt])) {
  1307.         $day_of_week_short explode(' '_DAY_OF_WEEK_SHORT);
  1308.         $month_short explode(' '_MONTH_SHORT);
  1309.         $day_of_week_long explode(' '_DAY_OF_WEEK_LONG);
  1310.         $month_long explode(' '_MONTH_LONG);
  1311.  
  1312.         $ml_date[$datefmtereg_replace('%a'$day_of_week_short[(int) strftime('%w'$timestamp)]$datefmt);
  1313.         $ml_date[$datefmtereg_replace('%A'$day_of_week_long[(int) strftime('%w'$timestamp)]$ml_date[$datefmt]);
  1314.         $ml_date[$datefmtereg_replace('%b'$month_short[(int) strftime('%m'$timestamp)-1]$ml_date[$datefmt]);
  1315.         $ml_date[$datefmtereg_replace('%B'$month_long[(int)strftime ('%m'$timestamp)-1]$ml_date[$datefmt]);
  1316.  
  1317.         if (pnUserLoggedIn()) {
  1318.             $thezone pnUserGetVar(pnUserDynamicAlias('timezone_offset'));
  1319.         else {
  1320.             $thezone pnConfigGetVar('timezone_offset');
  1321.         }
  1322.  
  1323.         $timezone_all explode(' '_TIMEZONES);
  1324.         $offset_all explode(' '_TZOFFSETS);
  1325.  
  1326.         $indexofzone 0;
  1327.         $offsetsize sizeof($offset_all);
  1328.         for ($i 0$i $offsetsize$i++{
  1329.             if ($offset_all[$i== $thezone{
  1330.                 $indexofzone $i;
  1331.             }
  1332.         }
  1333.         $ml_date[$datefmtereg_replace('%Z'$timezone_all [$indexofzone]$ml_date[$datefmt]);
  1334.     }
  1335.     return strftime($ml_date[$datefmt]$timestamp);
  1336. }
  1337.  
  1338. /**
  1339.  * get current language
  1340.  */
  1341. function language_current($action 'get'$new_language '')
  1342. {
  1343.     static $language '';
  1344.     switch ($action{
  1345.         case 'get':
  1346.             return $language;
  1347.         case 'set':
  1348.             $language $new_language;
  1349.             break;
  1350.         default:
  1351.             die("language_current($action,$new_language)");
  1352.     }
  1353. }
  1354.  
  1355. /**
  1356.  * build language sql clause for ml
  1357.  */
  1358. function language_sql($table$prefix ''$sql 'WHERE')
  1359. {
  1360.     $language language_current();
  1361.     if ($language == ''{
  1362.         return '';
  1363.     else {
  1364.         return " $sql $pntable["{$table}_column"]["{$prefix}language""='$language'";
  1365.     }
  1366. }
  1367.  
  1368. /**
  1369.  * get a language name
  1370.  */
  1371. function language_name($language)
  1372. {
  1373.     if (!isset($language)) {
  1374.         return null;
  1375.     }
  1376.  
  1377.     static $names array();
  1378.     if (!count($names)) {
  1379.         $names languagelist();
  1380.     }
  1381.     return $names[$language];
  1382. }

Documentation generated on Fri, 18 Jul 2008 21:53:53 +0200 by phpDocumentor 1.4.1