diff options
author | Derek Jones <derek.jones@ellislab.com> | 2010-03-02 19:53:43 +0100 |
---|---|---|
committer | Derek Jones <derek.jones@ellislab.com> | 2010-03-02 19:53:43 +0100 |
commit | b97d21f92c3f38aaab36d2c1f885918375417845 (patch) | |
tree | c113ccbbbb00340b190905252a4cc6a571e11c8e /system/core/Lang.php | |
parent | 7313237eaef22530789067066954280d609a0550 (diff) |
moving core library files out of libraries into new core folder
Diffstat (limited to 'system/core/Lang.php')
-rw-r--r-- | system/core/Lang.php | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/system/core/Lang.php b/system/core/Lang.php new file mode 100644 index 000000000..515d04a40 --- /dev/null +++ b/system/core/Lang.php @@ -0,0 +1,123 @@ +<?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_Language { + + var $language = array(); + var $is_loaded = array(); + + /** + * Constructor + * + * @access public + */ + function CI_Language() + { + 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) + { + $langfile = str_replace(EXT, '', str_replace('_lang.', '', $langfile)).'_lang'.EXT; + + if (in_array($langfile, $this->is_loaded, TRUE)) + { + return; + } + + if ($idiom == '') + { + $CI =& get_instance(); + $deft_lang = $CI->config->item('language'); + $idiom = ($deft_lang == '') ? 'english' : $deft_lang; + } + + // Determine where the language file is and load it + if (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 Language.php */ +/* Location: ./system/libraries/Language.php */
\ No newline at end of file |