]> jfr.im git - z_archive/KronOS.git/blob - system/core/Lang.php
Fixing filestructure again
[z_archive/KronOS.git] / system / core / Lang.php
1 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
2 /**
3 * CodeIgniter
4 *
5 * An open source application development framework for PHP 5.1.6 or newer
6 *
7 * @package CodeIgniter
8 * @author ExpressionEngine Dev Team
9 * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc.
10 * @license http://codeigniter.com/user_guide/license.html
11 * @link http://codeigniter.com
12 * @since Version 1.0
13 * @filesource
14 */
15
16 // ------------------------------------------------------------------------
17
18 /**
19 * Language Class
20 *
21 * @package CodeIgniter
22 * @subpackage Libraries
23 * @category Language
24 * @author ExpressionEngine Dev Team
25 * @link http://codeigniter.com/user_guide/libraries/language.html
26 */
27 class CI_Lang {
28
29 /**
30 * List of translations
31 *
32 * @var array
33 */
34 var $language = array();
35 /**
36 * List of loaded language files
37 *
38 * @var array
39 */
40 var $is_loaded = array();
41
42 /**
43 * Constructor
44 *
45 * @access public
46 */
47 function __construct()
48 {
49 log_message('debug', "Language Class Initialized");
50 }
51
52 // --------------------------------------------------------------------
53
54 /**
55 * Load a language file
56 *
57 * @access public
58 * @param mixed the name of the language file to be loaded. Can be an array
59 * @param string the language (english, etc.)
60 * @param bool return loaded array of translations
61 * @param bool add suffix to $langfile
62 * @param string alternative path to look for language file
63 * @return mixed
64 */
65 function load($langfile = '', $idiom = '', $return = FALSE, $add_suffix = TRUE, $alt_path = '')
66 {
67 $langfile = str_replace('.php', '', $langfile);
68
69 if ($add_suffix == TRUE)
70 {
71 $langfile = str_replace('_lang.', '', $langfile).'_lang';
72 }
73
74 $langfile .= '.php';
75
76 if (in_array($langfile, $this->is_loaded, TRUE))
77 {
78 return;
79 }
80
81 $config =& get_config();
82
83 if ($idiom == '')
84 {
85 $deft_lang = ( ! isset($config['language'])) ? 'english' : $config['language'];
86 $idiom = ($deft_lang == '') ? 'english' : $deft_lang;
87 }
88
89 // Determine where the language file is and load it
90 if ($alt_path != '' && file_exists($alt_path.'language/'.$idiom.'/'.$langfile))
91 {
92 include($alt_path.'language/'.$idiom.'/'.$langfile);
93 }
94 else
95 {
96 $found = FALSE;
97
98 foreach (get_instance()->load->get_package_paths(TRUE) as $package_path)
99 {
100 if (file_exists($package_path.'language/'.$idiom.'/'.$langfile))
101 {
102 include($package_path.'language/'.$idiom.'/'.$langfile);
103 $found = TRUE;
104 break;
105 }
106 }
107
108 if ($found !== TRUE)
109 {
110 show_error('Unable to load the requested language file: language/'.$idiom.'/'.$langfile);
111 }
112 }
113
114
115 if ( ! isset($lang))
116 {
117 log_message('error', 'Language file contains no data: language/'.$idiom.'/'.$langfile);
118 return;
119 }
120
121 if ($return == TRUE)
122 {
123 return $lang;
124 }
125
126 $this->is_loaded[] = $langfile;
127 $this->language = array_merge($this->language, $lang);
128 unset($lang);
129
130 log_message('debug', 'Language file loaded: language/'.$idiom.'/'.$langfile);
131 return TRUE;
132 }
133
134 // --------------------------------------------------------------------
135
136 /**
137 * Fetch a single line of text from the language array
138 *
139 * @access public
140 * @param string $line the language line
141 * @return string
142 */
143 function line($line = '')
144 {
145 $value = ($line == '' OR ! isset($this->language[$line])) ? FALSE : $this->language[$line];
146
147 // Because killer robots like unicorns!
148 if ($value === FALSE)
149 {
150 log_message('error', 'Could not find the language line "'.$line.'"');
151 }
152
153 return $value;
154 }
155
156 }
157 // END Language Class
158
159 /* End of file Lang.php */
160 /* Location: ./system/core/Lang.php */