summaryrefslogtreecommitdiffstats
path: root/system/libraries/Language.php
diff options
context:
space:
mode:
Diffstat (limited to 'system/libraries/Language.php')
-rw-r--r--system/libraries/Language.php113
1 files changed, 113 insertions, 0 deletions
diff --git a/system/libraries/Language.php b/system/libraries/Language.php
new file mode 100644
index 000000000..b668aa060
--- /dev/null
+++ b/system/libraries/Language.php
@@ -0,0 +1,113 @@
+<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
+/**
+ * Code Igniter
+ *
+ * An open source application development framework for PHP 4.3.2 or newer
+ *
+ * @package CodeIgniter
+ * @author Rick Ellis
+ * @copyright Copyright (c) 2006, pMachine, Inc.
+ * @license http://www.codeignitor.com/user_guide/license.html
+ * @link http://www.codeigniter.com
+ * @since Version 1.0
+ * @filesource
+ */
+
+// ------------------------------------------------------------------------
+
+/**
+ * Language Class
+ *
+ * @package CodeIgniter
+ * @subpackage Libraries
+ * @category Language
+ * @author Rick Ellis
+ * @link http://www.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");
+ }
+ // END CI_Language()
+
+ // --------------------------------------------------------------------
+
+ /**
+ * 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))
+ {
+ return;
+ }
+
+ if ($idiom == '')
+ {
+ $obj =& get_instance();
+ $deft_lang = $obj->config->item('language');
+ $idiom = ($deft_lang == '') ? 'english' : $deft_lang;
+ }
+
+ if ( ! file_exists(BASEPATH.'language/'.$idiom.'/'.$langfile))
+ {
+ show_error('Unable to load the requested language file: language/'.$langfile.EXT);
+ }
+
+ include_once(BASEPATH.'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;
+ }
+ // END load()
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Fetch a single line of text from the language array
+ *
+ * @access public
+ * @param string the language line
+ * @return string
+ */
+ function line($line = '')
+ {
+ return ($line == '' OR ! isset($this->language[$line])) ? FALSE : $this->language[$line];
+ }
+ // END line()
+
+}
+// END Language Class
+?> \ No newline at end of file