Subversion Repositories Applications.papyrus

Rev

Blame | Last modification | View Log | RSS feed

<?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, 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      void
         */
        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/'.$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 */