blob: a1f73d03b1dd0a59550f7812d4076b0ae857d551 [file] [log] [blame]
Derek Jones0b59f272008-05-13 04:22:33 +00001<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
Derek Allardd2df9bc2007-04-15 17:41:17 +00002/**
3 * CodeIgniter
4 *
5 * An open source application development framework for PHP 4.3.2 or newer
6 *
7 * @package CodeIgniter
Derek Allard3d879d52008-01-18 19:41:32 +00008 * @author ExpressionEngine Dev Team
Derek Allardd2df9bc2007-04-15 17:41:17 +00009 * @copyright Copyright (c) 2006, EllisLab, Inc.
Derek Jones7a9193a2008-01-21 18:39:20 +000010 * @license http://codeigniter.com/user_guide/license.html
11 * @link http://codeigniter.com
Derek Allardd2df9bc2007-04-15 17:41:17 +000012 * @since Version 1.0
13 * @filesource
14 */
15
16// ------------------------------------------------------------------------
17
18/**
19 * Language Class
20 *
21 * @package CodeIgniter
22 * @subpackage Libraries
23 * @category Language
Derek Allard3d879d52008-01-18 19:41:32 +000024 * @author ExpressionEngine Dev Team
Derek Jones7a9193a2008-01-21 18:39:20 +000025 * @link http://codeigniter.com/user_guide/libraries/language.html
Derek Allardd2df9bc2007-04-15 17:41:17 +000026 */
27class CI_Language {
28
29 var $language = array();
30 var $is_loaded = array();
31
32 /**
33 * Constructor
34 *
35 * @access public
36 */
37 function CI_Language()
38 {
39 log_message('debug', "Language Class Initialized");
40 }
41
42 // --------------------------------------------------------------------
43
44 /**
45 * Load a language file
46 *
47 * @access public
48 * @param mixed the name of the language file to be loaded. Can be an array
49 * @param string the language (english, etc.)
50 * @return void
51 */
Derek Allard79ecefd2007-07-15 22:49:07 +000052 function load($langfile = '', $idiom = '', $return = FALSE)
Derek Allardd2df9bc2007-04-15 17:41:17 +000053 {
54 $langfile = str_replace(EXT, '', str_replace('_lang.', '', $langfile)).'_lang'.EXT;
55
56 if (in_array($langfile, $this->is_loaded, TRUE))
57 {
58 return;
59 }
60
61 if ($idiom == '')
62 {
63 $CI =& get_instance();
64 $deft_lang = $CI->config->item('language');
65 $idiom = ($deft_lang == '') ? 'english' : $deft_lang;
66 }
67
68 // Determine where the language file is and load it
69 if (file_exists(APPPATH.'language/'.$idiom.'/'.$langfile))
70 {
71 include(APPPATH.'language/'.$idiom.'/'.$langfile);
72 }
73 else
74 {
75 if (file_exists(BASEPATH.'language/'.$idiom.'/'.$langfile))
76 {
77 include(BASEPATH.'language/'.$idiom.'/'.$langfile);
78 }
79 else
80 {
81 show_error('Unable to load the requested language file: language/'.$langfile);
82 }
83 }
84
Derek Allard79ecefd2007-07-15 22:49:07 +000085
Derek Jones0b59f272008-05-13 04:22:33 +000086 if ( ! isset($lang))
Derek Allardd2df9bc2007-04-15 17:41:17 +000087 {
88 log_message('error', 'Language file contains no data: language/'.$idiom.'/'.$langfile);
89 return;
90 }
91
Derek Allard79ecefd2007-07-15 22:49:07 +000092 if ($return == TRUE)
93 {
94 return $lang;
95 }
96
Derek Allardd2df9bc2007-04-15 17:41:17 +000097 $this->is_loaded[] = $langfile;
98 $this->language = array_merge($this->language, $lang);
99 unset($lang);
100
101 log_message('debug', 'Language file loaded: language/'.$idiom.'/'.$langfile);
102 return TRUE;
103 }
104
105 // --------------------------------------------------------------------
106
107 /**
108 * Fetch a single line of text from the language array
109 *
110 * @access public
Derek Allarddb257212008-06-20 05:56:51 +0000111 * @param string $line the language line
112 * @param string $label optional label
Derek Allardd2df9bc2007-04-15 17:41:17 +0000113 * @return string
114 */
Derek Allarddb257212008-06-20 05:56:51 +0000115 function line($line = '', $label = '')
Derek Allardd2df9bc2007-04-15 17:41:17 +0000116 {
Derek Allarddb257212008-06-20 05:56:51 +0000117 $line = ($line == '' OR ! isset($this->language[$line])) ? FALSE : $this->language[$line];
118
119 if ($label != '')
120 {
121 $line = '<label for="'.$label.'">'.$line."</label>";
122 }
123
124 return $line;
Derek Allardd2df9bc2007-04-15 17:41:17 +0000125 }
126
127}
128// END Language Class
Derek Jones0b59f272008-05-13 04:22:33 +0000129
130/* End of file Language.php */
Derek Jonesa3ffbbb2008-05-11 18:18:29 +0000131/* Location: ./system/libraries/Language.php */