Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
10582 lgm 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 */