/lenasys/trunk

To get this branch, use:
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 */