| <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); |
| /** |
| * CodeIgniter |
| * |
| * An open source application development framework for PHP 5.1.6 or newer |
| * |
| * NOTICE OF LICENSE |
| * |
| * Licensed under the Open Software License version 3.0 |
| * |
| * This source file is subject to the Open Software License (OSL 3.0) that is |
| * bundled with this package in the files license.txt / license.rst. It is |
| * also available through the world wide web at this URL: |
| * http://opensource.org/licenses/OSL-3.0 |
| * If you did not receive a copy of the license and are unable to obtain it |
| * through the world wide web, please send an email to |
| * licensing@ellislab.com so we can send you a copy immediately. |
| * |
| * @package CodeIgniter |
| * @author EllisLab Dev Team |
| * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. (http://ellislab.com/) |
| * @license http://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) |
| * @link http://codeigniter.com |
| * @since Version 1.0 |
| * @filesource |
| */ |
| |
| // ------------------------------------------------------------------------ |
| |
| /** |
| * Language Class |
| * |
| * @package CodeIgniter |
| * @subpackage Libraries |
| * @category Language |
| * @author EllisLab 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) OR ! is_array($lang)) |
| { |
| log_message('error', 'Language file contains no data: language/'.$idiom.'/'.$langfile); |
| return; |
| } |
| |
| if ($return == TRUE) |
| { |
| return $lang; |
| } |
| |
| $this->is_loaded[] = $langfile; |
| $this->language = $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 */ |