select_lang.lib.php

来自「php绿色服务器,让大家试用greenamp」· PHP 代码 · 共 217 行

PHP
217
字号
<?php/* $Id: select_lang.lib.php,v 2.13 2004/09/03 13:34:04 nijel Exp $ */// vim: expandtab sw=4 ts=4 sts=4:/** * phpMyAdmin Language Loading File *//** * We need some elements of the superglobal $_SERVER array. */require_once('./libraries/grab_globals.lib.php');/** * Define the path to the translations directory and get some variables * from system arrays if 'register_globals' is set to 'off' */$lang_path = 'lang/';/** * All the supported languages have to be listed in the array below. * 1. The key must be the "official" ISO 639 language code and, if required, *    the dialect code. It can also contain some informations about the *    charset (see the Russian case). * 2. The first of the values associated to the key is used in a regular *    expression to find some keywords corresponding to the language inside two *    environment variables. *    These values contains: *    - the "official" ISO language code and, if required, the dialect code *      also ('bu' for Bulgarian, 'fr([-_][[:alpha:]]{2})?' for all French *      dialects, 'zh[-_]tw' for Chinese traditional...), the dialect has to  *      be specified as first; *    - the '|' character (it means 'OR'); *    - the full language name. * 3. The second values associated to the key is the name of the file to load *    without the 'inc.php' extension. * 4. The last values associated to the key is the language code as defined by *    the RFC1766. * * Beware that the sorting order (first values associated to keys by * alphabetical reverse order in the array) is important: 'zh-tw' (chinese * traditional) must be detected before 'zh' (chinese simplified) for * example. * * When there are more than one charset for a language, we put the -utf-8 * last because we need the default charset to be non-utf-8 to avoid * problems on MySQL < 4.1.x if AllowAnywhereRecoding is FALSE. * * For Russian, we put 1251 first, because MSIE does not accept 866 * and users would not see anything. */$available_languages = array(    'en-iso-8859-1'     => array('en|english',  'english-iso-8859-1', 'en'),    'en-utf-8'          => array('en|english',  'english-utf-8', 'en'),    'zhtw-big5'        => array('zh[-_]tw|chinese traditional', 'chinese_traditional-big5', 'zh-TW'),    'zhtw-utf-8'       => array('zh[-_]tw|chinese traditional', 'chinese_traditional-utf-8', 'zh-TW'),    'zh-gb2312'         => array('zh|chinese simplified', 'chinese_simplified-gb2312', 'zh'),    'zh-utf-8'          => array('zh|chinese simplified', 'chinese_simplified-utf-8', 'zh'));/** * Analyzes some PHP environment variables to find the most probable language * that should be used * * @param   string   string to analyze * @param   integer  type of the PHP environment variable which value is $str * * @global  array    the list of available translations * @global  string   the retained translation keyword * * @access  private */function PMA_langDetect($str = '', $envType = ''){    global $available_languages;    global $lang;    foreach ($available_languages AS $key => $value) {        // $envType =  1 for the 'HTTP_ACCEPT_LANGUAGE' environment variable,        //             2 for the 'HTTP_USER_AGENT' one        $expr = $value[0];        if (strpos($expr, '[-_]') === FALSE) {            $expr = str_replace('|', '([-_][[:alpha:]]{2,3})?|', $expr);        }        if (($envType == 1 && eregi('^(' . $expr . ')(;q=[0-9]\\.[0-9])?$', $str))            || ($envType == 2 && eregi('(\(|\[|;[[:space:]])(' . $expr . ')(;|\]|\))', $str))) {            $lang     = $key;            break;        }    }} // end of the 'PMA_langDetect()' functionif (!isset($lang)) {    if (isset($_GET) && !empty($_GET['lang'])) {        $lang = $_GET['lang'];    }    else if (isset($_POST) && !empty($_POST['lang'])) {        $lang = $_POST['lang'];    }    else if (isset($_COOKIE) && !empty($_COOKIE['pma_lang'])) {        $lang = $_COOKIE['pma_lang'];    }}/** * Do the work! */// compatibility with config.inc.php <= v1.80if (!isset($cfg['Lang']) && isset($cfgLang)) {    $cfg['Lang']        = $cfgLang;    unset($cfgLang);}if (!isset($cfg['DefaultLang']) && isset($cfgDefaultLang)) {    $cfg['DefaultLang'] = $cfgDefaultLang;    unset($cfgLang);}/** * * 2004-02-15 rabus: Deactivated the code temporarily: *            We need to allow UTF-8 in order to be MySQL 4.1 compatible!// Disable UTF-8 if $cfg['AllowAnywhereRecoding'] has been set to FALSE.if (!isset($cfg['AllowAnywhereRecoding']) || !$cfg['AllowAnywhereRecoding']) {    $available_language_files               = $available_languages;    $available_languages                    = array();    foreach ($available_language_files AS $tmp_lang => $tmp_lang_data) {        if (substr($tmp_lang, -5) != 'utf-8') {            $available_languages[$tmp_lang] = $tmp_lang_data;        }    } // end while    unset($tmp_lang, $tmp_lang_data, $available_language_files);} // end if * */// MySQL charsets map$mysql_charset_map = array(    'big5'         => 'big5',    'cp-866'       => 'cp866',    'euc-jp'       => 'ujis',    'euc-kr'       => 'euckr',    'gb2312'       => 'gb2312',    'gbk'          => 'gbk',    'iso-8859-1'   => 'latin1',    'iso-8859-2'   => 'latin2',    'iso-8859-7'   => 'greek',    'iso-8859-8'   => 'hebrew',    'iso-8859-8-i' => 'hebrew',    'iso-8859-9'   => 'latin5',    'iso-8859-13'  => 'latin7',    'iso-8859-15'  => 'latin1',    'koi8-r'       => 'koi8r',    'shift_jis'    => 'sjis',    'tis-620'      => 'tis620',    'utf-8'        => 'utf8',    'windows-1250' => 'cp1250',    'windows-1251' => 'cp1251',    'windows-1252' => 'latin1',    'windows-1256' => 'cp1256',    'windows-1257' => 'cp1257',);// Lang forcedif (!empty($cfg['Lang'])) {    $lang = $cfg['Lang'];}// If '$lang' is defined, ensure this is a valid translationif (!empty($lang) && empty($available_languages[$lang])) {    $lang = '';}// Language is not defined yet :// 1. try to findout user's language by checking its HTTP_ACCEPT_LANGUAGE//    variableif (empty($lang) && !empty($HTTP_ACCEPT_LANGUAGE)) {    $accepted    = explode(',', $HTTP_ACCEPT_LANGUAGE);    $acceptedCnt = count($accepted);    for ($i = 0; $i < $acceptedCnt && empty($lang); $i++) {        PMA_langDetect($accepted[$i], 1);    }}// 2. try to findout user's language by checking its HTTP_USER_AGENT variableif (empty($lang) && !empty($HTTP_USER_AGENT)) {    PMA_langDetect($HTTP_USER_AGENT, 2);}// 3. Didn't catch any valid lang : we use the default settingsif (empty($lang)) {    $lang = $cfg['DefaultLang'];}// 4. Checks whether charset recoding should be allowed or not$allow_recoding = FALSE; // Default fallback valueif (!isset($convcharset) || empty($convcharset)) {    if (isset($_COOKIE['pma_charset'])) {        $convcharset = $_COOKIE['pma_charset'];    } else {        $convcharset = $cfg['DefaultCharset'];    }}// 5. Defines the associated filename and load the translation$lang_file = $lang_path . $available_languages[$lang][1] . '.inc.php';require_once('./' . $lang_file);?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?