CodeIgniter installed
[living-lab-site.git] / system / core / Lang.php
diff --git a/system/core/Lang.php b/system/core/Lang.php
new file mode 100755 (executable)
index 0000000..0b926a3
--- /dev/null
@@ -0,0 +1,147 @@
+<?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 {
+
+       var $language   = 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.)
+        * @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);
+               }
+               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 = '')
+       {
+               $line = ($line == '' OR ! isset($this->language[$line])) ? FALSE : $this->language[$line];
+
+               // Because killer robots like unicorns!
+               if ($line === FALSE)
+               {
+                       log_message('error', 'Could not find the language line "'.$line.'"');
+               }
+
+               return $line;
+       }
+
+}
+// END Language Class
+
+/* End of file Lang.php */
+/* Location: ./system/core/Lang.php */
\ No newline at end of file