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 */ |