2011-03-19 4 views
0

Codeigniter 2.0.1을 사용하고 있으며 언어 라인에 변수를 넣고 싶습니다. 예 : 사용자가 계정을 등록하려고하는데 해당 사용자 이름이 이미 존재하는 경우 "이 사용자 이름 $ 사용자 이름은 사용 중입니다"라는 언어 행을 넣고 싶습니다. % s을 (를) 변수로 사용한 유효성 검사 오류 언어 줄에서 보았습니다. 하지만이 파일을 사용자 정의 인증 오류 lang 파일에 넣으면 변수 대신 일반 % s가 생깁니다.Codeigniter의 언어 파일에 변수를 저장하는 방법은 무엇입니까?

답변

0

기본 Lang 클래스에서 가능한 것처럼 보이지 않습니다. 개인적으로 나는 그렇게했습니다.

먼저 i18n_helper :

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

if (! function_exists('line_with_arguments')) 
{ 
    function line_with_arguments($line, $swap) 
    { 
     return str_replace('%s', $swap, $line); 
    } 
} 

다음 내 컨트롤러를 호출

<?php 
class Home extends CI_Controller 
{ 
    public function index() 
    { 
     $this->lang->load('test', 'english'); 
     $this->load->helper('i18n'); 

     echo line_with_arguments($this->lang->line('test'), 'Matt'); 
    } 
} 

내 LANG 파일 :

<?php 
$lang['test'] = 'Hello %s'; 
+0

좋은 TrexXx. 여러 인수를 가진 행은 어떨까요? – nani1216

관련 문제