⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 language.class.inc.php

📁 This is the script which used on 10minutemail.com for temporary email.
💻 PHP
字号:
<?php

/** 
 * GentleSource - language.class.inc.php
 * 
 * (C) Ralf Stadtaus http://www.gentlesource.com/
 */




/**
 * Class name and unique identifier for $GLOBALS array that contains the
 * instance
 */
define('LANGUAGE_CLASS', 't12l_language');
define('LANGUAGE_INSTANCE', 't12l_language_instance');


/**
 * Handle file names and pramameters
 *
 * @access public
 */
class t12l_language
{

    /**
     * @var array Query string values
     * @access private
     */
    var $language;

    //--------------------------------------------------------------------------




    /**
     * Constructor
     *
     * @access private
     */
    function language()
    {
    }

    //--------------------------------------------------------------------------




    /**
     * Create single instance
     *
     */
    function &get_instance()
    {
        if (!isset($GLOBALS[LANGUAGE_INSTANCE])) {
            $GLOBALS[LANGUAGE_INSTANCE] = new t12l_language;
        }

        return $GLOBALS[LANGUAGE_INSTANCE];
    }

    //--------------------------------------------------------------------------




    /**
     *
     */
    function get($default)
    {
        global $t12l;
        $ref =& t12l_language::get_instance();
        $list = array();
        $redirect = false;

        // From post
        if (isset($t12l['_post']['t12l_language_selector']) and
            $t12l['_post']['t12l_language_selector'] != '') {
            $list[] = $t12l['_post']['t12l_language_selector'];
            $redirect = true;
        }

        // From get
        if (isset($t12l['_get']['t12l_language_selector']) and
            $t12l['_get']['t12l_language_selector'] != '') {
            $list[] = $t12l['_get']['t12l_language_selector'];
            $redirect = true;
        }

        // From cookie
        if (isset($t12l['_cookie'][$t12l['language_cookie_name']]) and
            $t12l['_cookie'][$t12l['language_cookie_name']] != '') {
            $list[] = $t12l['_cookie'][$t12l['language_cookie_name']];
        }
        
        // From domain
        $tld = substr($_SERVER['SERVER_NAME'], strrpos($_SERVER['SERVER_NAME'], '.') + 1);
        if (array_key_exists($tld, $t12l['domain_language'])) {
            $list[] = $t12l['domain_language'][$tld];
        }
        

        // From browser environment
        if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
            $accept = split(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
            foreach ($accept AS $key => $val)
            {
                if ($pos = strpos($val, ';') and $pos !== 0) {
                    $val = substr($val, 0, $pos);
                }
                $list[] = trim($val);
            }
        }


        $new_list = array();
        $language_folder = $t12l['language_directory'];
        
        // Use utf-8 folder if it exists
        if ($t12l['use_utf8'] == 'Y') {
            $language_folder = $t12l['language_directory_utf8'];
        }
        foreach ($list AS $key => $val)
        {
            if (!array_key_exists($val, $t12l['available_languages'])) {
                continue;
            }
            if (!is_file(T12L_ROOT . $language_folder . 'language.' . $val . '.php')) {
                // Go back to default language folder if language does not exists in utf-8 folder
                if (!is_file(T12L_ROOT . $t12l['language_directory'] . 'language.' . $val . '.php')) {
                    continue;
                }
            }
            $new_list[] = $val;
        }
        if (sizeof($new_list) > 0) {
            $new_language = $new_list[0];
        } else {
//            $language_setting = t12l_setting::read('default_language');
            $new_language = $default;
        }
                
        if (!isset($t12l['_cookie'][$t12l['language_cookie_name']]) 
                or $t12l['_cookie'][$t12l['language_cookie_name']] != $new_language) {
                    
            $ref->set($new_language);
            $ref->language = $new_language;
        }
        
        if (true == $redirect) {
            header('HTTP/1.1 301 Moved Permanently');
            header('Location: ' . urldecode(trim(t12l_gpc_vars('r'))));
        }

        return $new_language;
    }

    //--------------------------------------------------------------------------




    /**
     *
     */
    function set($language)
    {
        global $t12l;
        $ref =& t12l_language::get_instance();

        // Write cookie
        setcookie(  $t12l['language_cookie_name'],
                    $language,
                    time()+(3600*24*360*10),
                    $t12l['cookie_path'],
                    $t12l['cookie_domain']);
                    
                    
        
//        echo   $t12l['language_cookie_name'] . ' ' .
//                    $language . ' ' .   
//                    (time()+(3600*24*360*10)) . ' ' . 
//                    $t12l['cookie_path'] . ' ' . 
//                    $t12l['cookie_domain'];
    }

    //--------------------------------------------------------------------------




    /**
     * Load the content of a specified language file
     * 
     * @access public
     * @param string $language
     * @param string $item Part of the language file
     */
    function load($language)
    {
        global $t12l;
        $res = array();
        
        $language_folder = $t12l['language_directory'];
        
        
        // Use utf-8 folder if it exists
        if ($t12l['use_utf8'] == 'Y') {
            $language_folder = $t12l['language_directory_utf8'];
        }
        
        // Go back to default language folder if language does not exists in utf-8 folder
        if (!is_file(T12L_ROOT . $language_folder . 'language.' . $language . '.php')
                and is_file(T12L_ROOT . $t12l['language_directory'] . 'language.' . $language . '.php')) {
            $language_folder = $t12l['language_directory'];
        }
        
        $path = T12L_ROOT . $language_folder . 'language.' . $language . '.php';
        
        include $path;
        if (is_file($path)) {
            include $path;
            $res = $text;
        }
        
        return $res;
    }

    //--------------------------------------------------------------------------





} // End of class
?>

⌨️ 快捷键说明

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