2017-09-11 1 views
1

Je veux passer une variable à un fichier de langue. J'ai créé MY_language.php en application/core/MY_language.php.Passer une varibale au fichier de langue sans sprintf

class MY_Language extends CI_Lang 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    function line($line, $params = null) 
    { 
     $return = parent::line($line); 

     if ($return === false) { 
      return "!-- $line --!"; 
     } else { 
      if (!is_null($params)) { 
       $return = $this->_ni_line($return, $params); 
      } 
      return $return; 
     } 
    } 

    private function _ni_line($str, $params) 
    { 
     $return = $str; 

     $params = is_array($params) ? $params : array($params); 

     $search = array(); 
     $cnt = 0; 
     foreach ($params as $param) { 
      $search[$cnt] = '/\\$' . ($cnt + 1) . '/'; 
      $cnt++; 
     } 

     $return = preg_replace($search, $params, $return); 

     return $return; 
    } 
} 

Ce fichier doit remplacer la fonction CodeIgniter line() et accepter un tableau de paramètres en entrée, et l'insérer dans everywhereIi de langue chaîne ont le type $ dans mon texte de langue.

$lang['delete'] = "$name was deleted"; 

Le résultat du code ci-dessus est:

sam was deleted 
+0

Quelle est votre question? – rndus2r

Répondre

1
in codeigniter 3 the language your core language file must be PREFIX_lang 
0

Puisque vous ajoutez des paramètres à la fonction line() vous ne pouvez pas l'ignorer.

un autre nom comme magic_line()