웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
[추천 팁] 웹 브라우저가 한글인지 영문인지(다른 언어인지) 자동 인식하기...
2002.07.10 01:23
팁 내용:
PHP의 변수를 이용 웹 브라우저가 어느 나라 언어로 인코딩(encoding)이 설정되어 있는지 알아보기
팁 배경:
이번에 브라우저로 노는 웹 게임을 한글화/개발하면서, 영어 한국어 사용자 모두 놀 수 있도록 다국어 지원을 넣었습니다. (게임 소스 보고 싶으신 분은 오픈 소스이니 http://digirave.net 에서 다운 받을 수 있습니다)
팁 내용:
브라우저가 기본 encoding type을 서버에게 보내줍니다. 이것은 $HTTP_ACCEPT_LANGUAGE 라는 전역 변수를 통해 볼 수 있습니다.
한국어의 경우 $HTTP_ACCEPT_LANGUAGE 변수는 "ko" 입니다. 영어인 경우는 "en" 입니다. 자세한 모든 나라는 밑에 실제 제 홈페이지 http://digirave.net 의 index.php 파일과 함께 첨가합니다.
팁 실제 예(http://digirave.net 의 index file):
예제 내용: 브라우저의 인코딩으로 쿠키 설정을 함으로써 영문 방문자와 한글 방문자에게 알맞은 페이지를 보여줍니다. 나중에 영문인지 한글인지 인식이 쉽도록 lang 으로 쿠키를 하나 설정합니다
$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;
}
?>
팁 참고 자료:
설명: $HTTP_ACCEPT_LANGUAGE의 모든 언어 설정입니다
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)
팁 코멘트:
왜
if(preg_match('/ko/', $HTTP_ACCEPT_LANGUAGE)) {
로 하고
if($HTTP_ACCEPT_LANGUAGE == "ko") {
로 안 했냐구요?
phpschool의 L.S 님의 지적:
HTTP_ACCEPT_LANGUAGE 값은 단순히 "ko" 하나만 넘어오지 않는 경우도 있습니다. 브라우저에서 추가하면 여러개가 동시에 넘어오는 경우도 있지요.(지금 집이 아니라 확인을 못하겠는데, 제 컴퓨터의 경우는 ko와 ja가 함께 넘어값니다) HTTP 규격을 확인하면 자세한 사항이 나와있지요. q=xx 을 이용한 우선순위 같은 설정이 있으므로, 주의하셔야 할 부분입니다.
PHP의 변수를 이용 웹 브라우저가 어느 나라 언어로 인코딩(encoding)이 설정되어 있는지 알아보기
팁 배경:
이번에 브라우저로 노는 웹 게임을 한글화/개발하면서, 영어 한국어 사용자 모두 놀 수 있도록 다국어 지원을 넣었습니다. (게임 소스 보고 싶으신 분은 오픈 소스이니 http://digirave.net 에서 다운 받을 수 있습니다)
팁 내용:
브라우저가 기본 encoding type을 서버에게 보내줍니다. 이것은 $HTTP_ACCEPT_LANGUAGE 라는 전역 변수를 통해 볼 수 있습니다.
한국어의 경우 $HTTP_ACCEPT_LANGUAGE 변수는 "ko" 입니다. 영어인 경우는 "en" 입니다. 자세한 모든 나라는 밑에 실제 제 홈페이지 http://digirave.net 의 index.php 파일과 함께 첨가합니다.
팁 실제 예(http://digirave.net 의 index file):
예제 내용: 브라우저의 인코딩으로 쿠키 설정을 함으로써 영문 방문자와 한글 방문자에게 알맞은 페이지를 보여줍니다. 나중에 영문인지 한글인지 인식이 쉽도록 lang 으로 쿠키를 하나 설정합니다
$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;
}
?>
팁 참고 자료:
설명: $HTTP_ACCEPT_LANGUAGE의 모든 언어 설정입니다
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)
팁 코멘트:
왜
if(preg_match('/ko/', $HTTP_ACCEPT_LANGUAGE)) {
로 하고
if($HTTP_ACCEPT_LANGUAGE == "ko") {
로 안 했냐구요?
phpschool의 L.S 님의 지적:
HTTP_ACCEPT_LANGUAGE 값은 단순히 "ko" 하나만 넘어오지 않는 경우도 있습니다. 브라우저에서 추가하면 여러개가 동시에 넘어오는 경우도 있지요.(지금 집이 아니라 확인을 못하겠는데, 제 컴퓨터의 경우는 ko와 ja가 함께 넘어값니다) HTTP 규격을 확인하면 자세한 사항이 나와있지요. q=xx 을 이용한 우선순위 같은 설정이 있으므로, 주의하셔야 할 부분입니다.
댓글 1
제목 | 글쓴이 | 날짜 |
---|---|---|
1900년부터 2043년까지 음력을 양력으로..... [3] | pupstar | 2001.08.14 |
양력을 음력으로... [7] | pupstar | 2001.08.14 |
mysql_fetch_row함수와 mysql_fetch_array함수의 차이점. [4] | webzzang | 2001.08.22 |
php 로 swf 맹글기 [3] | 리산 | 2001.08.30 |
남은 계정 용량 확인하는 PHP [17] | 겜올드™ | 2001.09.09 |
Imagechar() 함수에서 한문자씩쓰는거 여러글짜이어쓰는함수 | 김승태 | 2001.10.20 |
자동차세 연체가산금 계산기 | secret | 2001.04.02 |
[GD] 이미지 회전 함수 공개합니다. [7] | 노경민 | 2001.11.05 |
알렉사 순위 가져오는 스크립트;;
[30]
![]() | zero | 2001.11.06 |
게시판 만들 때 스팸메일을 막을 수 있는 방법중 한개. [11] | WOWpc | 2001.11.09 |
[추천 소스] 특정일로부터 몇일 지났나 또는 몇일 남았나 알아보는 소스 ㅡ.ㅡ; [1] | 타스케 | 2001.11.15 |
컴에 phpMyAdmin 깔고 원격 Mysql 관리.(이것도 팁이 되려나?) [1] | 최형삼 | 2001.11.17 |
phpMyAdmin에서 dump 안 되시는 분들 보세요 [5] | 똥가리 | 2001.11.18 |
MySQL에서 한글 정렬 문제 [2] | 손정호 | 2001.11.21 |
[추천 소스] phpMyAdmin 다중사용자용... [5] | WOWpc | 2001.11.29 |
[추천 팁] 디망쉬식 스킨 시스템 [4] | 디망쉬 | 2001.12.11 |
파일시스템(배열)에서의 검색기능 [5] | 두기두바 | 2002.01.09 |
파일시스템에서 비밀번호 생성/수정/인증 [7] | 두기두바 | 2002.01.10 |
cron을 이용해 윈앰프 방송정보를 빠르게 분석. [9] | Romeo | 2002.01.15 |
[PHP]모르는 분이 있는듯 해서...변수관련 [2] | TheMics | 2002.01.24 |