CI 묻고 답하기

제목 단위 스트링 분리하기 도와주세요!
글쓴이 혈풍 작성시각 2015/08/27 20:37:36
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 14210   RSS
안녕하세요.

단위 스트링을 능동적으로 나누는 부분에서 막혀서 이렇게 질문을 올립니다.

ci세상님의 '[게임서버] controller 단위 스트링 분리하기'
http://cikorea.net/lecture/view/504/page/1

위에 내용을 보고 
application/language/korean 폴더에 한국어 스트링을 전부 넣고
application/language/english 폴더에 영어 스트링을 전부 넣었습니다.


그리고나서 
controller 상단에 
public function __construct() {
    parent::__construct();      
    $this->lang->load("battle","korean");
   //  혹은 $this->lang->load("battle","english");
}

위에 코드처럼 만들었다가

public function __construct() {
    parent::__construct();      
    $this->lang->load("battle");
}

위에 코드처럼 수정하여
config/config.php 에 있는 language 값에 따라 스트링을 가져오도록 처리했습니다.

제가 궁금한 것은 config/config.php 에 있는 language에 설정되어 있어지만
form_validation등에 스트링을 사용할 수 있어서
저렇게 처리했는데 혹시 능동적으로 언어 폴더를 구분할 수 있는 법이 있을까요?

controller에서면 단순히 변수처리로 해서라도 언어를 분리했을 텐데,
config.php는 여러가지 시도를 해봤지만 답이 보이지는 않았습니다..

도와주세요. 고수님들!

 다음글 레이아웃시 echo 출력할 시에 레이아웃 위쪽에 출력되... (2)
 이전글 codeigniter 포럼소스에서 댓글이 안되요!! (2)

댓글

한대승(불의회상) / 2015/08/28 09:40:41 / 추천 0
능동적(?) 이란게 어떤건가요?
잘 사용하지 않는 표현이라서.....
꾸꾸 / 2015/08/28 10:22:41 / 추천 0
config.php 에서 접속 IP Address 국가에 따라 korean/english 설정을 하면 될꺼같은데요.
혹시 원하시는게 이런걸까요? ^^;
변종원(웅파) / 2015/08/28 13:47:40 / 추천 0
자바스크립트로 브라우저의 언어를 가져와서 사용하는 방법이 있고
꾸꾸님 말씀처럼 ip로 국가를 구분하는 방법이 있습니다.

hook 포인트에서 그 값을 구한후 상수로 선언하여 쓰시면 편합니다.
들국화 / 2015/08/28 14:07:27 / 추천 0
$_SERVER['HTTP_ACCEPT_LANGUAGE']
값으로 확인할수도 있습니다.
혈풍 / 2015/08/28 21:13:23 / 추천 0
많은 답변에 감사드립니다.
제가 질문을 많이 이상하게 했습니다. 죄송합니다.
요점은 config.php 에 있는 $config['language']를 controller에서 어떻게 바꾸는지였습니다.
매뉴얼을 보다보니 환경설정클래스 부분에 config 파일을 호출하는 부분이 있었습니다.
읽다보니, config.php는 자동으로 load 한다고 되어 있었는데,
그러면 강제 호출도 가능할 것 같아서 강제 호출하였습니다.
그리고 set_item이라는 부분이 있었습니다.
public function __construct() {
   parent::__construct();     
   $this->coonfig->load('config');
   $language = $this->config->item('language');
   
   $lang_code = $this->input->get('lang', TRUE);
   if($lang_code != null)
       $language = $lang_code;

   $this->config->set_item('language', $language);
   $this->lang->load("battle");

}

위와 같은 코드로 하니 됐습니다

그리고 나서 혹시 몰라서 system/language 에 있던 폴더를 전부 application/language 로 이동시켰습니다.
안 옮겨도 됐을 것 같지만, 국가별로 작업 하는데 system 과  application 따로 관리하고 싶지 않아서 그냥 application으로 전부 옮겼습니다.
이렇게 문제는 해결되었습니다.