| <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); |
| /** |
| * CodeIgniter |
| * |
| * An open source application development framework for PHP 4.3.2 or newer |
| * |
| * @package CodeIgniter |
| * @author ExpressionEngine Dev Team |
| * @copyright Copyright (c) 2008 - 2010, 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 CI_Lang() |
| { |
| 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); |
| } |
| elseif (file_exists(APPPATH.'language/'.$idiom.'/'.$langfile)) |
| { |
| include(APPPATH.'language/'.$idiom.'/'.$langfile); |
| } |
| else |
| { |
| if (file_exists(BASEPATH.'language/'.$idiom.'/'.$langfile)) |
| { |
| include(BASEPATH.'language/'.$idiom.'/'.$langfile); |
| } |
| else |
| { |
| 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 */ |