1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95:
<?php (defined('BASEPATH')) OR exit('No direct script access allowed');
class MY_Lang extends CI_Lang
{
public function __construct()
{
parent::__construct();
}
public function switch_to($idiom)
{
$CI =& get_instance();
if(is_string($idiom))
{
$CI->config->set_item('language', $idiom);
$loaded = $this->is_loaded;
$this->is_loaded = array();
foreach($loaded as $file)
{
$this->load(strtr($file, '', '_lang.php'));
}
}
}
/**
* Fetch a single line of text from the language array. Takes variable number
* of arguments and supports wildcards in the form of '%1', '%2', etc.
* Overloaded function.
*
* @access public
* @return mixed false if not found or the language string
*/
public function line($line = '', $log_errors = TRUE)
{
//get the arguments passed to the function
$args = func_get_args();
//count the number of arguments
$c = count($args);
//if one or more arguments, perform the necessary processing
if($c)
{
//first argument should be the actual language line key
//so remove it from the array (pop from front)
$line = array_shift($args);
//check to make sure the key is valid and load the line
if($line == '')
{
$line = FALSE;
}
else
{
if(isset($this->language[$line]))
{
$line = $this->language[$line];
//if the line exists and more function arguments remain
//perform wildcard replacements
if($args)
{
$i = 1;
foreach($args as $arg)
{
$line = preg_replace('/\%'.$i.'/', $arg, $line);
++$i;
}
}
}
else
{
// just return label name (with TBD)
$line = $this->line_tbd($line);
log_message('error', 'Could not find the language line "'.$line.'"');
}
}
}
else
{
//if no arguments given, no language line available
$line = FALSE;
}
return $line;
}
public function line_tbd($line = '')
{
return $line . ' (TBD)';
}
}
?>