Take two:
[www-register-wizard.git] / libraries / Language.php
1 <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');\r
2 /**\r
3  * CodeIgniter\r
4  *\r
5  * An open source application development framework for PHP 4.3.2 or newer\r
6  *\r
7  * @package             CodeIgniter\r
8  * @author              ExpressionEngine Dev Team\r
9  * @copyright   Copyright (c) 2008, EllisLab, Inc.\r
10  * @license             http://codeigniter.com/user_guide/license.html\r
11  * @link                http://codeigniter.com\r
12  * @since               Version 1.0\r
13  * @filesource\r
14  */\r
15 \r
16 // ------------------------------------------------------------------------\r
17 \r
18 /**\r
19  * Language Class\r
20  *\r
21  * @package             CodeIgniter\r
22  * @subpackage  Libraries\r
23  * @category    Language\r
24  * @author              ExpressionEngine Dev Team\r
25  * @link                http://codeigniter.com/user_guide/libraries/language.html\r
26  */\r
27 class CI_Language {\r
28 \r
29         var $language   = array();\r
30         var $is_loaded  = array();\r
31 \r
32         /**\r
33          * Constructor\r
34          *\r
35          * @access      public\r
36          */     \r
37         function CI_Language()\r
38         {\r
39                 log_message('debug', "Language Class Initialized");\r
40         }\r
41         \r
42         // --------------------------------------------------------------------\r
43         \r
44         /**\r
45          * Load a language file\r
46          *\r
47          * @access      public\r
48          * @param       mixed   the name of the language file to be loaded. Can be an array\r
49          * @param       string  the language (english, etc.)\r
50          * @return      void\r
51          */\r
52         function load($langfile = '', $idiom = '', $return = FALSE)\r
53         {       \r
54                 $langfile = str_replace(EXT, '', str_replace('_lang.', '', $langfile)).'_lang'.EXT;\r
55                 \r
56                 if (in_array($langfile, $this->is_loaded, TRUE))\r
57                 {\r
58                         return;\r
59                 }\r
60                 \r
61                 if ($idiom == '')\r
62                 {\r
63                         $CI =& get_instance();\r
64                         $deft_lang = $CI->config->item('language');\r
65                         $idiom = ($deft_lang == '') ? 'english' : $deft_lang;\r
66                 }\r
67         \r
68                 // Determine where the language file is and load it\r
69                 if (file_exists(APPPATH.'language/'.$idiom.'/'.$langfile))\r
70                 {\r
71                         include(APPPATH.'language/'.$idiom.'/'.$langfile);\r
72                 }\r
73                 else\r
74                 {               \r
75                         if (file_exists(BASEPATH.'language/'.$idiom.'/'.$langfile))\r
76                         {\r
77                                 include(BASEPATH.'language/'.$idiom.'/'.$langfile);\r
78                         }\r
79                         else\r
80                         {\r
81                                 show_error('Unable to load the requested language file: language/'.$langfile);\r
82                         }\r
83                 }\r
84 \r
85                 \r
86                 if ( ! isset($lang))\r
87                 {\r
88                         log_message('error', 'Language file contains no data: language/'.$idiom.'/'.$langfile);\r
89                         return;\r
90                 }\r
91                 \r
92                 if ($return == TRUE)\r
93                 {\r
94                         return $lang;\r
95                 }\r
96                 \r
97                 $this->is_loaded[] = $langfile;\r
98                 $this->language = array_merge($this->language, $lang);\r
99                 unset($lang);\r
100                 \r
101                 log_message('debug', 'Language file loaded: language/'.$idiom.'/'.$langfile);\r
102                 return TRUE;\r
103         }\r
104         \r
105         // --------------------------------------------------------------------\r
106         \r
107         /**\r
108          * Fetch a single line of text from the language array\r
109          *\r
110          * @access      public\r
111          * @param       string  $line   the language line\r
112          * @return      string\r
113          */\r
114         function line($line = '')\r
115         {\r
116                 $line = ($line == '' OR ! isset($this->language[$line])) ? FALSE : $this->language[$line];\r
117                 return $line;\r
118         }\r
119 \r
120 }\r
121 // END Language Class\r
122 \r
123 /* End of file Language.php */\r
124 /* Location: ./system/libraries/Language.php */