| 제목 | PHP언어 자동인식 루틴 | |||||
|---|---|---|---|---|---|---|
| 등록자 | 관리자 | 등록일 | 2008.04.11 01:20:28 | 접속 | 89733 | |
| 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($HTTP_ACCEPT_LANGUAGE == "ko") { 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) |
||||||
| ... 자료없음 ... | ||||||