/lenasys/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/trunk

« back to all changes in this revision

Viewing changes to codeigniter/system/core/Lang.php

  • Committer: galaxyAbstractor
  • Date: 2013-04-10 15:58:59 UTC
  • mfrom: (20.1.1 lenasys)
  • mto: This revision was merged to the branch mainline in revision 23.
  • Revision ID: galaxyabstractor@gmail.com-20130410155859-cih60kaz5es8savt
CodeIgniter implementation of basic CMS system

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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 */