개발 Q&A

제목 다국어 관련 질문좀 드리겠습니다.
카테고리 PHP
글쓴이 jsyoo 작성시각 2019/10/01 09:42:53
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 9310   RSS

안녕하세요.

PHP CI 다국어기능을 이용하여 한국어, 일본어, 영어, 중국어를 제공하는 홈페이지를 개발하려고 합니다.

 

우선 먼저 검색도 여러번 해봤고, 여러 고수님들 덕분에 기본 틀은 잡아놓은 상태입니다. (감사드려요)

현재 저는 application->language 밑에 제공되는 언어 폴더를 만들었고, 그 안에 각 컨트롤러_lang.php를 만들어두었어요.

php ci 정식 가이드 보고 따라 했습니다.

 

$this->lang->load('company', 'english');

$lang = $this->lang->language;

이런식으로 해서 $lang에는 각 키/값 배열이 들어갑니다.

 

근데 궁금한것은.. 

저는 보통 컨트롤러에서 뷰를 부를 때, 

$attr = array(

'key1' => 'value1',

'key2' => 'value2'

);

$this->load->view('호출할 뷰', $attr);

 

이렇게 해서, 그 뷰 안에서 $key1, $key2 라는 변수로 갖다 썼는데..

다국어를 처리 할 때에는, 어떻게 해야 하나요??

$attr = array(

'lang' => $lang

);

이렇게하고, 뷰 안에서 <?php echo $lang['TITLE']; ?> 이런식으로 처리하는게 맞습니까?

그러면 뷰는 1개만 만들어도 될거 같고, hook나 캐시를 이용해서 선택된 언어만 고정시켜두면 될거 같긴한데

 

제 접근방식이 맞나요..? 컨트롤러->뷰 이것만 좀 해결하면 좋겠습니다.

 다음글 환경질문입니다. (2)
 이전글 조건에 따라 js include 파일을 변경 할 수 있... (2)

댓글

kaido / 2019/10/01 09:58:23 / 추천 0

기본 접근 방식은 맞습니다.

언어만 체인지 하시는거면 Lang 을 하나 지정해서 키쌍으로 각국 언어를 번역하는 구조입니다.

 

조금 더 고려를 하자면 언어만이 아니라 다국어 사이트 특정상 뷰가 분리되어야 하는 경우가 더러있습니다.

가령 일본과 사이가 안좋으면 일본 사이트는 회사명이 한국인걸 숨겨야 한다든지...

 

고려사항 2.

js 상에서 노출되는 얼럿 처리 문제.

가급적 js 파일을 분리하는 최근 개발환경상   js에서 튀어나오는 문구가 번역을 넣기 까다로운 케이스도있습니다.

대표적인 문구는 정리해서 상수로 빼놓기도 합니다.

 

나중에 딴말 하는 업체가 많아서 노파심에 ㅎㅎ

변종원(웅파) / 2019/10/01 10:01:29 / 추천 0

훅에서 언어 설정하는 상수를 선언하고 컨트롤러에서 자기에게 맞는 언어셋을 불러서 뷰로 넘겨서 사용했었습니다. ^^

 

timothy / 2019/10/14 13:50:20 / 추천 0

제 경우도 비슷합니다.

1. 푸터에 select option을 배치하여, 여기에 각 언어별 값을 넣기

2. 언어 값이 change가 되었을 때, 훅 처리를 통해서 쿠키값 중에 언어값 변경과 JS와 view에 사용할 스트링을 언어팩으로부터 불러오기

3. 불러온 스트링들을 변수에 담은 다음에 컨트롤러에서 view에 전달해서 사용하였습니다.