bzr branch
http://gegoxaren.bato24.eu/bzr/lenasys/trunk
20.1.1
by galaxyAbstractor
* Added an simple admin panel to the codeviewer-cmssy stuff |
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 */
|