140 行
		
	
	
		
			无行尾
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			140 行
		
	
	
		
			无行尾
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 | |
| /**
 | |
|  * CodeIgniter
 | |
|  *
 | |
|  * An open source application development framework for PHP 5.1.6 or newer
 | |
|  *
 | |
|  * @package		CodeIgniter
 | |
|  * @author		ExpressionEngine Dev Team
 | |
|  * @copyright	Copyright (c) 2008 - 2011, EllisLab, Inc.
 | |
|  * @license		http://codeigniter.com/user_guide/license.html
 | |
|  * @link		http://codeigniter.com
 | |
|  * @since		Version 1.0
 | |
|  * @filesource
 | |
|  */
 | |
| 
 | |
| // ------------------------------------------------------------------------
 | |
| 
 | |
| /**
 | |
|  * Language Class
 | |
|  *
 | |
|  * @package		CodeIgniter
 | |
|  * @subpackage	Libraries
 | |
|  * @category	Language
 | |
|  * @author		ExpressionEngine Dev Team
 | |
|  * @link		http://codeigniter.com/user_guide/libraries/language.html
 | |
|  */
 | |
| class CI_Lang {
 | |
| 
 | |
| 	var $language	= array();
 | |
| 	var $is_loaded	= array();
 | |
| 
 | |
| 	/**
 | |
| 	 * Constructor
 | |
| 	 *
 | |
| 	 * @access	public
 | |
| 	 */
 | |
| 	function __construct()
 | |
| 	{
 | |
| 		log_message('debug', "Language Class Initialized");
 | |
| 	}
 | |
| 
 | |
| 	// --------------------------------------------------------------------
 | |
| 
 | |
| 	/**
 | |
| 	 * Load a language file
 | |
| 	 *
 | |
| 	 * @access	public
 | |
| 	 * @param	mixed	the name of the language file to be loaded. Can be an array
 | |
| 	 * @param	string	the language (english, etc.)
 | |
| 	 * @return	mixed
 | |
| 	 */
 | |
| 	function load($langfile = '', $idiom = '', $return = FALSE, $add_suffix = TRUE, $alt_path = '')
 | |
| 	{
 | |
| 		$langfile = str_replace(EXT, '', $langfile);
 | |
| 
 | |
| 		if ($add_suffix == TRUE)
 | |
| 		{
 | |
| 			$langfile = str_replace('_lang.', '', $langfile).'_lang';
 | |
| 		}
 | |
| 
 | |
| 		$langfile .= EXT;
 | |
| 
 | |
| 		if (in_array($langfile, $this->is_loaded, TRUE))
 | |
| 		{
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		$config =& get_config();
 | |
| 
 | |
| 		if ($idiom == '')
 | |
| 		{
 | |
| 			$deft_lang = ( ! isset($config['language'])) ? 'english' : $config['language'];
 | |
| 			$idiom = ($deft_lang == '') ? 'english' : $deft_lang;
 | |
| 		}
 | |
| 
 | |
| 		// Determine where the language file is and load it
 | |
| 		if ($alt_path != '' && file_exists($alt_path.'language/'.$idiom.'/'.$langfile))
 | |
| 		{
 | |
| 			include($alt_path.'language/'.$idiom.'/'.$langfile);
 | |
| 		}
 | |
| 		else
 | |
| 		{
 | |
| 			$found = FALSE;
 | |
| 
 | |
| 			foreach (get_instance()->load->get_package_paths(TRUE) as $package_path)
 | |
| 			{
 | |
| 				if (file_exists($package_path.'language/'.$idiom.'/'.$langfile))
 | |
| 				{
 | |
| 					include($package_path.'language/'.$idiom.'/'.$langfile);
 | |
| 					$found = TRUE;
 | |
| 					break;
 | |
| 				}
 | |
| 			}
 | |
| 
 | |
| 			if ($found !== TRUE)
 | |
| 			{
 | |
| 				show_error('Unable to load the requested language file: language/'.$idiom.'/'.$langfile);
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 
 | |
| 		if ( ! isset($lang))
 | |
| 		{
 | |
| 			log_message('error', 'Language file contains no data: language/'.$idiom.'/'.$langfile);
 | |
| 			return;
 | |
| 		}
 | |
| 
 | |
| 		if ($return == TRUE)
 | |
| 		{
 | |
| 			return $lang;
 | |
| 		}
 | |
| 
 | |
| 		$this->is_loaded[] = $langfile;
 | |
| 		$this->language = array_merge($this->language, $lang);
 | |
| 		unset($lang);
 | |
| 
 | |
| 		log_message('debug', 'Language file loaded: language/'.$idiom.'/'.$langfile);
 | |
| 		return TRUE;
 | |
| 	}
 | |
| 
 | |
| 	// --------------------------------------------------------------------
 | |
| 
 | |
| 	/**
 | |
| 	 * Fetch a single line of text from the language array
 | |
| 	 *
 | |
| 	 * @access	public
 | |
| 	 * @param	string	$line	the language line
 | |
| 	 * @return	string
 | |
| 	 */
 | |
| 	function line($line = '')
 | |
| 	{
 | |
| 		$line = ($line == '' OR ! isset($this->language[$line])) ? FALSE : $this->language[$line];
 | |
| 		return $line;
 | |
| 	}
 | |
| 
 | |
| }
 | |
| // END Language Class
 | |
| 
 | |
| /* End of file Lang.php */
 | |
| /* Location: ./system/core/Lang.php */ |