- 언어변경 버튼 링크에 자바스크립트 추가
javascript:langChange('ko');
- 메인 index에 기본 쿠키 설정
<script>
function setCookie(cName, cValue, cDay) {
let expire = new Date();
expire.setDate(expire.getDate() + cDay);
cookies = cName + '=' + escape(cValue) + '; path=/ '; // 한글 깨짐을 막기위해 escape(cValue)를 합니다.
// console.log(cookies);
if (typeof cDay != 'undefined') cookies += ';expires=' + expire.toGMTString() + ';';
document.cookie = cookies;
}
setCookie('clickedlanguage', 'ko', 1)
</script>
- 언어 변경 및 쿠키 생성스크립트
//언어변경
function langChange(lang) {
var thisPathName = window.location.pathname; //현재 페이지의 경로
var splitUrl = ''; //현재 페이지 경로를 '/'를 기준으로 쪼개기 위한 변수
var url = ''; //최종적으로 변경 될 주소
splitUrl = thisPathName.split('/'); //현재 페이지를 '/'를 기준으로 쪼개기
splitUrl[1] = lang; //쪼갠 주소 중 언어별 폴더를 클릭한 언어로 변경 : ex)'en'클릭 시: '/ko/about/...' -> '/en/about/...' 변경
setCookie('clickedlanguage', lang, 1);
var thisUrl = window.location.href;
if (!thisPathName.match('/board/') && thisPathName.match('/index.php')) { // 메인
window.location.href = window.location.protocol + '//' + window.location.hostname + '/' + splitUrl[1] + '/' + splitUrl[2];
} else if (!thisPathName.match('/board/')) { //게시판 제외
window.location.href = window.location.protocol + '//' + window.location.hostname + '/' + splitUrl[1] + '/' + splitUrl[2] + '/' + splitUrl[3];
} else if (thisPathName.match('/board/')) { // 게시판 일 때
if (thisUrl.match('news')) {
window.location.href = window.location.protocol + '//' + window.location.hostname + '/board/news_' + splitUrl[1];
} else if (thisUrl.match('notice')) {
window.location.href = window.location.protocol + '//' + window.location.hostname + '/board/notice_' + splitUrl[1];
}
}
}
// 쿠키 생성 함수
function setCookie(cName, cValue, cDay) {
var expire = new Date();
expire.setDate(expire.getDate() + cDay);
cookies = cName + '=' + escape(cValue) + '; path=/ '; // 한글 깨짐을 막기위해 escape(cValue)를 합니다.
console.log(cookies);
if (typeof cDay != 'undefined') cookies += ';expires=' + expire.toGMTString() + ';';
document.cookie = cookies;
}
- 다국어별 헤드 및 푸터 지정
<?php
//쿠키얻기
$getCookieLang = $_COOKIE["clickedlanguage"];
// URL에 해당 문자가 들어가 있는지
$thisURL = $_SERVER['REQUEST_URI'];
$thisLangKO = '_ko';
$thisLangEN = '_en';
/////////다국어 관련 , 푸터도 동일하게
if($getCookieLang === "ko"){ //한국어
include($_SERVER['DOCUMENT_ROOT'].'/ko/inc/inc_head.php');
include($_SERVER['DOCUMENT_ROOT'].'/ko/inc/inc_gnb.html');
} else if($getCookieLang === "en") { //영어
include($_SERVER['DOCUMENT_ROOT'].'/en/inc/inc_head.php');
include($_SERVER['DOCUMENT_ROOT'].'/en/inc/inc_gnb.html');
} else if(strpos($thisURL, $thisLangKO) !== false) {
include($_SERVER['DOCUMENT_ROOT'].'/ko/inc/inc_head.php');
include($_SERVER['DOCUMENT_ROOT'].'/ko/inc/inc_gnb.html');
} else if(strpos($thisURL, $thisLangEN) !== false) {
include($_SERVER['DOCUMENT_ROOT'].'/en/inc/inc_head.php');
include($_SERVER['DOCUMENT_ROOT'].'/en/inc/inc_gnb.html');
};
?>
위 코드 수정
<?php
//쿠키얻기
$getCookieLang = $_COOKIE["clickedlanguage"];
$thisURL = $_SERVER['REQUEST_URI'];
$thisLangKO = '_ko';
$thisLangEN = '_en';
$thisLangJP = '_jp';
if(strpos($thisURL, '_en') == true) {
$getCookieLang = 'en';
} else if(strpos($thisURL, '_jp') == true) {
$getCookieLang = "jp";
} else {
$getCookieLang = "ko";
}
$arr = array("ko", "jp", "en");
//헤더
if(in_array($getCookieLang, $arr)) {
include($_SERVER['DOCUMENT_ROOT'].'/'.$getCookieLang.'/inc/inc_head.html');
include($_SERVER['DOCUMENT_ROOT'].'/'.$getCookieLang.'/inc/inc_gnb.php');
}
//푸터
if(in_array($getCookieLang, $arr)) {
include($_SERVER['DOCUMENT_ROOT'].'/'.$getCookieLang.'/inc/inc_footer.php');
include($_SERVER['DOCUMENT_ROOT'].'/'.$getCookieLang.'/inc/inc_end.php');
}
?>
728x90