CI 묻고 답하기

제목 초보가 다시 질문 드려봅니다... 다국어 관련..
글쓴이 파성인 작성시각 2014/01/23 11:15:52
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 14480   RSS
 일단 저번 질문에 도움주신분들 감사합니다. 
대충 저의 안돌아가는 머리로 종합해본결과

config.php
에서 language 부분을 
$config['language'] = 'KR';

이렇게 맞추고 언어 로드 하는 부분에서 
$this->config->set_item('language', $code);
$this->lang->load($part, $code);

이런식으로 로드 하였습니다. 
$code 부분은 EN, JP, KR 이 각각 들어오게끔 되어있습니다. 
language 폴더 밑에는 각각 EN, JP, KR 폴더가 존재합니다. 

그런데  print_r($this->lang->language); 이놈으로 확인을 해보면 
자꾸 한국어만 뱉어냅니다..

컨피그 설정에서 제가 무언가 잘못한거 아닌가 해서 컨피그 값을 찍어봐도
[language] => JP
이런식으로 정상적으로 셋팅이 되어 있습니다.

그리고 혹시나 싶어서 $part 이놈을 약간 조작해보면
Unable to load the requested language file: language/JP/speedd_lang.php
이런식으로 정상 인식합니다..ㄷㄷ;

무엇때문에 안되는 걸까요..
도움을 요청합니다. 

 다음글 디버깅 때문에 너무 힘드네요 (4)
 이전글 마이그레이션 (7)

댓글

변종원(웅파) / 2014/01/23 13:01:08 / 추천 0
$this->lang->line('language_key'); 해서 $part 파일내의 특정키를 출력해보세요.
파성인 / 2014/01/23 14:48:31 / 추천 0
 웅파님 답변감사드립니다. 
특정키 출력이 아니라 전체언어를 다 바꿔야되서...

일단 이리저리 삽을 퍼본결과 후크 기능을 이용하면 언어 변경이 가능하다고 들었습니다. 

그래서 설정한것이 
$hook['pre_controller'] = array(
    'class'    => 'Locale_lang',
    'function' => 'get_lang',
    'filename' => 'locale_lang.php',
    'filepath' => 'hooks'
);

이렇게 설정을 해주고 

class Locale_lang {
 
function __construct()
    {
        $this->ci =& get_instance();
    }
 
    function get_lang()
    {
    die();
        echo "hook";
    }
}

이런식으로 클래스를 선언했습니다. 
이제 남은건 쿠키 값에 따라서
config의 language 에 접근을해서값을 바꿔주면
설정한 언어로 바뀔거 같은데..
$config 변수로 접근을 할려면 여기서 어떤작업을 해주어야되나요.


한대승(불의회상) / 2014/01/23 15:24:58 / 추천 0
컨트롤러 별로 바꾸시는게 아니군요.
훅에서 하시면 될거 같구요.
아래 처럼 하시면 될듯
$this->ci->config->set_item()


 
파성인 / 2014/01/23 15:42:40 / 추천 0
 $this->ci =& get_instance();
    $this->ci->config->set_item('language', 'KR');

이런식으로 후크에서 셋팅을 하고 
컨트롤로 쪽에서 
print_r($this->lang);
이렇게 출력을 해보니 빈값이 출력됩니다. 

CI_Lang Object ( [language] => Array ( ) [is_loaded] => Array ( ) )

원인이 무엇인지요 
변종원(웅파) / 2014/01/23 15:54:24 / 추천 0
config 값으로 움직이지 마시고

hook에서 특정 상수값을 언어에 따라 셋팅을 하시고 그 상수를 
아래 함수의 두번째 파라미터에 사용하면 됩니다.

define('LANG_CODE', 'KR');

$this->lang->load('filename', LANG_CODE); 

 
파성인 / 2014/01/23 16:03:48 / 추천 0
 답변감사합니다.