출처 : https://www.happyjung.com/lecture/1921?sca=PHP&sst=wr_good&sod=desc&sop=and&page=5&device=mobile
사용자 웹브라우저 언어설정 코드에 따라 다른 페이지로 이동하기 (포워딩) > 기술자료 | 해피정
PHP의 변수를 이용 웹 브라우저가 어느 나라 언어로 인코딩(encoding)이 설정되어 있는지 알아보기 브라우저가 기본 encoding ty…
www.happyjung.com
PHP의 변수를 이용 웹 브라우저가 어느 나라 언어로 인코딩(encoding)이 설정되어 있는지 알아보기
브라우저가 기본 encoding type을 서버에게 보내줍니다.
이것은 $_SERVER['HTTP_ACCEPT_LANGUAGE'] 라는 전역 변수를 통해 볼 수 있습니다.
한국어의 경우 $_SERVER['HTTP_ACCEPT_LANGUAGE'] 변수는 "ko" 입니다. 영어는 "en" 입니다.
나중에 영문인지 한글인지 인식이 쉽도록 lang 으로 쿠키를 하나 설정합니다
브라우저 언어설정코드 : https://www.happyjung.com/lecture/2684
[ 방법.1 ]<?php
$gamedomain = ".digirave.net";
$gamepath = "/";
$host = getenv("HTTP_HOST");
if (preg_match("/www.digirave.net/", $host) || preg_match("/gagaspace/", $host)) {
Header("Location: http://digirave.net");
exit;
}
// 한글 방문자의 경우 kr_frame으로
if(preg_match('/ko/', $HTTP_ACCEPT_LANGUAGE)) {
if((!preg_match('/korean/', $GLOBALS[lang])) && (!preg_match('/english/', $GLOBALS[lang]))) {
$lang = 'korean';
SetCookie("lang",$lang,time()+(3600*24)*365,"/");
}
header("Location: http://digirave.net/digibbs/php/kr_frame.php");
exit;
}
// 영문 방문자의 경우 en_frame으로
else {
if((!preg_match('/korean/', $GLOBALS[lang])) && (!preg_match('/english/', $GLOBALS[lang]))) {
$lang = 'english';
SetCookie("lang",$lang,time()+(3600*24)*365,"/");
}
header("Location: http://digirave.net/digibbs/php/en_frame.php");
exit;
}
?>
[ 방법.2 ]
<?php
// 한글 방문자
if(preg_match('/ko/', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
// 언어를 쿠키로 생성 /*if((!preg_match('/korean/', $GLOBALS['lang'])) && (!preg_match('/english/', $GLOBALS['lang']))) {
$lang = 'korean';
SetCookie("lang",$lang,time()+(3600*24)*365,"/");
}*/
header("Location: /lang/korean.php");
exit;
}
// 일본어 방문자
elseif(preg_match('/jp/', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
header("Location: /demo/lang/japanese.php");
exit;
}
// 중국어 방문자
elseif(preg_match('/zh/', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
header("Location: /lang/chinese.php");
exit;
}
// 중국어 방문자
elseif(preg_match('/zh-ch/', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
header("Location: /lang/chinese_ch.php");
exit;
}
// 중국어 방문자
elseif(preg_match('/zh-hk/', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
header("Location: /demo/lang/chinese_hk.php");
exit;
}
// 영문 방문자
else {
header("Location: /demo/lang/english.php");
exit;
}
?>
[ 방법.3 ]
$var = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
switch($var) {
Case "ko":
echo "<meta http-equiv='Refresh' content='0; URL=/demo/lang/korean.php'>";
break;
Case "ja":
echo "<meta http-equiv='Refresh' content='0; URL=/demo/lang/japanese.php'>";
break;
Case "zh":
echo "<meta http-equiv='Refresh' content='0; URL=/demo/lang/chinese.php'>";
break;
default:
echo "<meta http-equiv='Refresh' content='0; URL=/demo/lang/english.php'>";
break;
}
추가...나라별 코드값
Afrikaans : af
Albanian : sq
Basque : eu
Bulgarian : bg
Byelorussian : be
Catalan : ca
Chinese : zh
Chinese/China : zh-cn
Chinese/Taiwan : zh-tw
Chinese/Hong Kong : zh-hk
Chinese/singapore : zh-sg
Croatian : hr
Czech : cs
Danish : da
Dutch : nl
Dutch/Belgium : nl-be
English : en
English/United Kingdom : en-gb
English/United Satates : en-us
English/Australian : en-au
English/Canada : en-ca
English/New Zealand : en-nz
English/Ireland : en-ie
English/South Africa : en-za
English/Jamaica : en-jm
English/Belize : en-bz
English/Trinidad : en-tt
Estonian : et
Faeroese : fo
Farsi : fa
Finnish : fi
French : fr
French/Belgium : fr-be
French/France : fr-fr
French/Switzerland : fr-ch
French/Canada : fr-ca
French/Luxembourg : fr-lu
Gaelic : gd
Galician : gl
German : de
German/Austria : de-at
German/Germany : de-de
German/Switzerland : de-ch
German/Luxembourg : de-lu
German/Liechtenstein : de-li
Greek : el
Hindi : hi
Hungarian : hu
Icelandic : is
Indonesian : id or in
Irish : ga
Italian : it
Italian/ Switzerland : it-ch
Japanese : ja
Korean : ko
Latvian : lv
Lithuanian : lt
Macedonian : mk
Malaysian : ms
Maltese : mt
Norwegian : no
Polish : pl
Portuguese : pt
Portuguese/Brazil : pt-br
Rhaeto-Romanic : rm
Romanian : ro
Romanian/Moldavia : ro-mo
Russian : ru
Russian /Moldavia : ru-mo
Scots Gaelic : gd
Serbian : sr
Slovack : sk
Slovenian : sl
Sorbian : sb
Spanish : es or es-do
Spanish/Argentina : es-ar
Spanish/Colombia : es-co
Spanish/Mexico : es-mx
Spanish/Spain : es-es
Spanish/Guatemala : es-gt
Spanish/Costa Rica : es-cr
Spanish/Panama : es-pa
Spanish/Venezuela : es-ve
Spanish/Peru : es-pe
Spanish/Ecuador : es-ec
Spanish/Chile : es-cl
Spanish/Uruguay : es-uy
Spanish/Paraguay : es-py
Spanish/Bolivia : es-bo
Spanish/El salvador : es-sv
Spanish/Honduras : es-hn
Spanish/Nicaragua : es-ni
Spanish/Puerto Rico : es-pr
Sutu : sx
Swedish : sv
Swedish/Findland : sv-fi
Thai : ts
Tswana : tn
Turkish : tr
Ukrainian : uk
Urdu : ur
Vietnamese : vi
Xshosa : xh
Yiddish : ji
Zulu : zu