애니빌드.LAB
토론방
소스관련 다국어 지원시 메뉴 변경 방법
- n**hk
- 2015-01-03 13:09:34
- hit4433
- http://wdev.anybuild.co.kr/bbs/qna/3893
확인 가능한 전체 URL : http://nhhk.nabid.kr/page/sub2-1
한국어랑 영어랑 두개 지원하고 있는데요..
네비게이션 메뉴 목록 셀렉트박스에서 영어 선택시 영어로 변경하려면 어찌해야 하는지 방법 좀 알려주세요..

게시글 공유
URL복사
댓글작성
열기 닫기
열기 닫기
메인 상단 슬라이드 이미지도 선택 언어에 따라 다른 이미지를 출력하려고 합니다.
방법 좀 알려주세요..
간단하게는 처리가 어렵습니다.
네비게이션 출력되는 부분을 모두 수정처리를 해야되는데요...
저희쪽에서 보기에 제일 편한 방법에 대해서 말씀드리겠습니다.
일단 언어별로 다르게 출력을 할려면 분기를 줘야 됩니다.
<!--@if($site_lan=='kr')-->
국문내용출력
<!--@elseif($site_lan=='en')-->
영문내용출력
<!--@end-->
기본적으로 위의 소스가 삽입이 되어야 됩니다.
먼저 관리자 페이지 네비게이션 마법사에 접속을 하신뒤 메뉴명을 변경을 합니다.
구분자를 기준으로 앞에는 국문일때 노출되는거 뒤에는 영문일때 노출되는걸로 등록을 합니다.
예를들어 공지사항의 경우는 공지사항,NOTICE 이런식으로 등록을 합니다.
여기서 콤마는 구분자이며 어떠한것이던 상관이 없습니다. 단 메뉴에 기재가 안되고 반드시 구분자로서만 사용가능한것으로 해주셔야 됩니다.
이렇게 메뉴명을 구성을 다하시면 네비게이션 출력되는 부분이 공지사항,NOTICE 이러게 모두 출력이 될겁니다.
그럼 이 출력되는 곳을 찾아서 국문일때, 영문일때 각각 다르게 출력을 하도록 소스를 변경을 해야됩니다.
해당 사이트에 네비게이션은 스킨에 정의가되어있어 이 부분을 잠깐 설명을 드리겠습니다.
<ul id="gnbNavigation">
<!--@foreach($nav[sub_menu] as $key=>$value)-->
<li cond="$value[visible]" class="on"|cond="$key == $navNum[0]">
{@
$targetStr = ($value[link_target]) ? "target='$value[link_target]'" : "";
echo ($value[link_url]) ? "<a href='$value[link_url]' $targetStr>$value[subject]</a>" : $value[subject];
@}
<ul cond="$value[sub_menu]">
<!--@foreach($value[sub_menu] as $key2=>$value2)-->
<li cond="$value2[visible]" class="on"|cond="($key == $navNum[0]) && ($key2==$navNum[1])">
{@
$targetStr = ($value2[link_target]) ? "target='$value2[link_target]'" : "";
echo ($value2[link_url]) ? "`<a href='$value2[link_url]' $targetStr>$value2[subject]</a>" : $value2[subject];
@}
</li>
<!--@end-->
</ul>
</li>
<!--@end-->
</ul>
위의 소스가 스킨에서 네비게이션 출력되는 부분입니다.
위의 빨간색 부분이 제목이 출력되는 부분인데요..
먼저 제목부분을 구분을 합니다.
$l_subject = explode(",",$values[subject]);
콤마로 구분을 하는 구문이며, $l_subject[0]에는 국문이 $l_subject[1]에는 영문명이 들어가게 되죠..
그럼 이것을 위의 if문을 써서 언어별로 다른 내역이 노출되도록 합니다.
if($site_lan==**;kr**;){
$real_subejct = $l_subject[0];
}else if($site_lan=='en'){
$real_subejct = $l_subject[1];
}
그리고 이 $real_subejct라는 변수를 빨간색 부분에 삽입을 하는 식으로 작업을 해야됩니다.
1단계 메뉴도 있고 2단계메뉴도 있기 때문에 위의 구분부분은 각각 따로따로 작업을 하셔야지만 정상적으로 출력이 됩니다.
즉 $vaues[subject]랑 $values2[subject]는 다르기 때문에 각각에 대한 정의를 해주셔야 됩니다.
상단 스킨부분의 작업이 끝났으면 좌측 메뉴 부분도 스킨처럼 재작업을 해주시면 됩니다.
감사합니다.