TIP게시판

제목 코드이그나이터 다국어를 JS에서도 쓰기!
글쓴이 방문넷 작성시각 2014/10/13 18:57:08
댓글 : 1 추천 : 0 스크랩 : 1 조회수 : 15910   RSS
배강민님의 팁을 인용하여 보강을 했습니다.
원본팁 : 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
좋은 정보 감사 합니다. ^^