제목 | 다국적 언어 개발 방법 | ||
---|---|---|---|
글쓴이 | 작돌이 | 작성시각 | 2010/03/03 15:02:26 |
|
|||
ASP 닷넷이나 자바 웹개발 프레임웍에는 거의 international 관련한 내용들이 있어서 CI도 그런게 있을거라 생각하는데요 헬퍼중 Language 부분이 그러한 부분인 것 같은데 설명이 좀 짧아서 응용하기 힘들어요. 관련 참고 사항이나 소스있으시면 알려주세요. 예를 들면 아래처럼 사용이 가능할까 해서요. echo helper->lang('message_hello',locale->international()); 로켈에 따라 해당 메시지가 해당 로켈로 출력되는 ... 물론 로켈에 따른 키와 벨류는 어딘가에 저장되어 있다고 전제 하에 말이죠. 있다면 좋겠습니다. ㅎㅎ |
|||
다음글 | 뷰에 동적으로 데이터 추가하기 (3) | ||
이전글 | [초보] mPDF 사용하게 되었습니다. (4) | ||
변종원(웅파)
/
2010/03/03 15:50:09 /
추천
0
|
변종원(웅파)
/
2010/03/03 15:58:15 /
추천
0
단순하게 변수 하나의 내용 가져오는 것이라면 헬퍼가 편하겠네요.
단, 언어파일이 먼저 로딩이 되어 있어야 합니다.
$this->lang->load('email', $translation); $this->load->helper('language'); echo lang('error_url_missing'); 결과 You must submit an email address 헬퍼에서 두번째 파라미터는 그 내용으로 <label>을 만들어주는 겁니다. |
변종원(웅파)
/
2010/03/03 16:10:24 /
추천
0
한가지 덧붙인다면 xml을 이용한 방법도 있습니다.
1개의 파일로 언어파일을 사용하고 그 안에 계층적으로 넣어서 검색시 1단계 전체, 2단계 전체 또는 해당변수만 찾아올 수 있습니다. ci의 현재 구조로 큰규모의 다국어사이트 개발하기는 좀 애로사항이 있습니다. |
작돌이
/
2010/03/03 16:12:18 /
추천
0
시스템 메시지에 대한 내용은 알고 있었는데 이걸 응용하는 방법을 생각하지 못했네요.
우선 랭귀지 폴더와 파일을 생성하고 관련 내용을 입력 후 각 국가별로 저장한 다음 $this->lang->load('filename'); 로 로딩한 후 $this->lang->line('message_hello'); 이렇게 사용하면 되겠구나 라고 생각했습니다. 한 사이트 내에서 글로벌 변수로 언어를 변경할수 있도록 또는 자동으로 로켈을 인식하게 한 후 $this->lang->load('filename', $agent_locale); 이런식으로 사용해도 될 것 같습니다. 지금 다시 메뉴얼 읽다가. 자답해야지 하고 포럼 다시 왔는데 벌써 -ㅅ-! 메뉴얼은 읽어도 읽어도 기억이 안남아요... |
변종원(웅파)
/
2010/03/03 16:18:08 /
추천
0
네 저도 매뉴얼에 대충 뭐가 있다는 정도만 기억이 납니다. ^^
질문을 보고 '매뉴얼에 있었던 것 같은데..' 하면서 찾습니다. ㅎㅎ 아니면 치트가 한장 있는데 그거 출력해서 붙여놓고 보셔도 됩니다. 함수명과 간략한 설명이 되어 있는 치트. (이궁 지금보니 설명은 없네요. 그냥 대분류와 그 안에 포함되어 있는 함수명과 파라미터들만. 그런데 함수명이 직관적이라..) 매뉴얼에 ci치트시트 라고 라이브러리, 헬퍼 2장 있네요. (또 매뉴얼. ㅋㅋㅋ) |
미드필드
/
2010/03/06 11:46:43 /
추천
0
|
http://codeigniter-kr.org/user_guide/libraries/language.html
languages 디렉토리 열어보시면 단순히 배열로 선언되어 있습니다.
$lang['....'] 배열내용이 email_lang.php 라는 언어파일에 들어있다면 위 구문의 5번째줄 처럼 로딩을 하면
$translation의 내용에 따라 영어, 한국어 등을 불러올 수 있습니다.
7번째 라인은 그중 error_url_missing 에 해당하는 값을 뿌릴 거구요.
You must submit an email address