config->set_item('language', $idiom); $loaded = $this->is_loaded; $this->is_loaded = array(); foreach($loaded as $file) { $filename = strtr($file, '', '_lang.php'); $this->load($filename, 'english'); $array = $this->load($filename, $idiom, TRUE); foreach($array as $lang_key => $lang_value) { if ($lang_value != '') { $this->language[$lang_key] = $lang_value; } } } } } /** * 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]) && $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)'; } } ?>