제목 | 코드이그나이터 다국어를 JS에서도 쓰기! | ||
---|---|---|---|
글쓴이 | 방문넷 | 작성시각 | 2014/10/13 18:57:08 |
|
|||
배강민님의 팁을 인용하여 보강을 했습니다. 원본팁 : http://www.cikorea.net/tip/view/824/page/1/q/%EB%8B%A4%EA%B5%AD%EC%96%B4 Notice!!!! => 제 팁은 HMVC가 설치된 코드이그나이터 2.2.0 기준으로 작성한 팁입니다. public function lang_js() { header('Content-Type: application/javascript'); $this->load->helper('file'); $modules = get_dir_file_info(APPPATH.'../../modules/', $top_level_only = TRUE); $list = array(); foreach($modules as $key => $value) { $file = read_file(APPPATH.'../../modules/'.$key.'/language/'.$this->session->userdata('language').'/'.$key.'_lang.php'); if($file) { $this->lang->load($key.'/'.$key); $list[$key] = $this->lang->language; } } echo "var LANG = ".json_encode($list, 256+128); } 요로쿵 컨트롤러 내에 삽입 하신후 html에서 js파일 로드 하듯이 불러쓰면됩니다. 단! 컨트롤러명이 member 다 하면 랭귀지 파일명은 member_lang.php 로 해야 불러와지는 구조입니다. 코드를 입력하고 확인해보면 이런식으로 나올껍니당. 매번 날로 먹는팁을 가져오는 방문대장 물러나겠습니다~~ 쓩~ 보강설명... read_file(APPPATH.'../../modules/'.$key.'/language/'.$this->session->userdata('language').'/'.$key.'_lang.php'); read_file 을 보시면 세션의 값을 가져오는데 이때 language 폴더 하위의 english라던가 korean등의 언어폴더를 나타내는 거입니당. 고로 언어디렉토리로 교체해서 사용하셔도 됩니다. echo json_encode($list, 256+128); 생소하신분들도 계실꺼고 아시는분은 아시리라 생각이 듭니다. json_encode까지는 아는데 뒤에 숫자는 뭥미? 이러실껍니당. 자 PHP문서 일부 입니다. JSON_HEX_TAG => 1 JSON_HEX_AMP => 2 JSON_HEX_APOS => 4 JSON_HEX_QUOT => 8 JSON_FORCE_OBJECT => 16 JSON_NUMERIC_CHECK => 32 JSON_UNESCAPED_SLASHES => 64 JSON_PRETTY_PRINT => 128 JSON_UNESCAPED_UNICODE => 256 JSON_ERROR_DEPTH => 1 JSON_ERROR_STATE_MISMATCH => 2 JSON_ERROR_CTRL_CHAR => 3 JSON_ERROR_SYNTAX => 4 JSON_ERROR_UTF8 => 5 JSON_OBJECT_AS_ARRAY => 1 JSON_BIGINT_AS_STRING => 2 딱봐도 척이지용~ 저는 JSON_PRETTY_PRINT(JSON 코드 이쁘게 정렬)와 JSON_UNESCAPED_UNICODE(한글이 유니코드로 나올때 제대로 한글 나오게끔해주기)옵션을 둘다 적용한것 입니다. 숫자로 하셔도되고 json_encode($list, JSON_PRETTY_PRINT+JSON_UNESCAPED_UNICODE) 이렇게 하셔도됩니다 ^^ |
|||
다음글 | co.kr, net, kr 도메인으로 접근시 com으로... (1) | ||
이전글 | PHP 5.5.X 이상 버젼 사용시 보안클래스 버그 있... (6) | ||
한대승(불의회상)
/
2014/10/13 19:04:10 /
추천
0
좋은 정보 감사 합니다. ^^
|