본문 바로가기
카테고리 없음

사용자 웹브라우저 언어설정 코드에 따라 다른 페이지로 이동하기 (포워딩)

by 크레도스 2021. 8. 17.

출처 : 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