You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							160 lines
						
					
					
						
							3.5 KiB
						
					
					
				
			
		
		
	
	
							160 lines
						
					
					
						
							3.5 KiB
						
					
					
				| <?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 { | |
|  | |
| 	/** | |
| 	 * List of translations | |
| 	 * | |
| 	 * @var array | |
| 	 */ | |
| 	var $language	= array(); | |
| 	/** | |
| 	 * List of loaded language files | |
| 	 * | |
| 	 * @var 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.) | |
| 	 * @param	bool	return loaded array of translations | |
| 	 * @param 	bool	add suffix to $langfile | |
| 	 * @param 	string	alternative path to look for language file | |
| 	 * @return	mixed | |
| 	 */ | |
| 	function load($langfile = '', $idiom = '', $return = FALSE, $add_suffix = TRUE, $alt_path = '') | |
| 	{ | |
| 		$langfile = str_replace('.php', '', $langfile); | |
|  | |
| 		if ($add_suffix == TRUE) | |
| 		{ | |
| 			$langfile = str_replace('_lang.', '', $langfile).'_lang'; | |
| 		} | |
|  | |
| 		$langfile .= '.php'; | |
|  | |
| 		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 = '') | |
| 	{ | |
| 		$value = ($line == '' OR ! isset($this->language[$line])) ? FALSE : $this->language[$line]; | |
|  | |
| 		// Because killer robots like unicorns! | |
| 		if ($value === FALSE) | |
| 		{ | |
| 			log_message('error', 'Could not find the language line "'.$line.'"'); | |
| 		} | |
|  | |
| 		return $value; | |
| 	} | |
|  | |
| } | |
| // END Language Class | |
|  | |
| /* End of file Lang.php */ | |
| /* Location: ./system/core/Lang.php */
 | |
| 
 |