Подобрения по language функционалността на CodeIgniter

Някога ядосвали ли сте се на функционалността на CodeIgniter свързана езиковата поддръжка и локализацията? Много съм се дразнел винаги на постоянното повтаряне на:

echo $this->lang->line('sample_label');


Днес се натъкнах на един пост във форумите на CodeIgniter относно използването на езиковата функционалност и за по-лесен начин за достъпване на езиковите проенливи. Това ме накара да се замисля за някакъв вид опростяване на нужния код за изкарване на езикова костанта. Това което направих, беше едно малко подобрение в Loader класа – по специално view функцията. Създадох MY_Loader фаила в libraries папката и сложих следния код вътре:

<?php
class MY_Loader extends CI_Loader
{
 /**
 * Load View
 *
 * This function is used to load a "view" file.  It has three parameters:
 *
 * 1. The name of the "view" file to be included.
 * 2. An associative array of data to be extracted for use in the view.
 * 3. TRUE/FALSE - whether to return the data or load it.  In
 * some cases it's advantageous to be able to return data so that
 * a developer can process it in some way.
 *
 * @access    public
 * @param    string
 * @param    array
 * @param    bool
 * @return    void
 */
 function view($view, $vars = array(), $return = FALSE)
 {
     $vars = $this->_ci_object_to_array($vars);
     $CI =& get_instance();
     $vars['lang'] = &$CI->lang->language;
     return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars),
     '_ci_return' => $return));
  }
}
?>

По този начин мога лесно да зползвам $lang array-а във view-то по следния начин:

$lang['sample_label']

UPDATE:
Съжалявам за ненужната тема … извода – Read the * manual  … Установих, че в lang helper-а
на CodeIgniter има магическа функция, за която незнаех до сега -> lang(‘language key’)

Прочети статията на: English

  1. Все още няма коментари.

  1. Все още няма нито един trackback.