국가별 홈페이지 분기를 위한 HTTP 헤더 사용~

|



예전에 MaxMind의 GeoIP를 이용하여 IP를 기반으로 국가별 분기를 하는 내용을 정리하였는데요. 

2012/03/07 - [프로그래밍/Web] - 웹페이지 접속자에 따른 국문, 영문 페이지의 구분을 위한 국가를 확인 방법에 대한 정리


HTTP의 헤더 정보를 사용하여 보다 쉽게 국가별 분기를 하는 방법이 있더군요. 

바로 HTTP_ACCEPT_LANGUAGE 정보를 확인하는 것입니다. 


해당 정보를 보내주지 않는 브라우저가 있으면 문제가 될 수 있을 듯하여 살펴봤는데

대부분의 브라우저에서 잘 지원하는 것 같습니다. 


각 프로그래밍 언어별 HTTP_ACCEPT_LANGUAGE 정보를 가져오는 것은 다음과 같습니다. 

PHP: $_SERVER['HTTP_ACCEPT_LANGUAGE']
ASP: Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")
JSP: request.getHeader("accept_language");


그런데 한가지 주의할 사항은 브라우저에 따라 HTTP_ACCEPT_LANGUAGE 값이 여러개 설정될 수 있다는 것입니다. 

만약 "es-mx,fr,de-ch,en-us" 이렇게 설정되어 있다면 

스페인어(멕시코), 프랑스어(프랑스), 독일어(스위스), 영어(미국) 순으로 기본 설정에 따라 사용된다는 것이죠. 


그러므로 단순히 각 언어를 비교하는 형태는 문제가 될 수 있습니다. 

그래서 Java로 한국어 - 중국어 - 영어 순으로 표시하고자 할 경우, 다음과 같이 작성하는 것이 보다 나은 해결책이 될 것 같습니다. 



마지막으로 국가별 코드를 정리하니 참고하시기 바랍니다. (출처: http://www.mcanerin.com/en/articles/meta-language.asp)

ISO 639: Two-letter Language Codes

Sorted by Language

 

Sorted by Language Code

AbkhazianAB AAAfar
AfarAA ABAbkhazian
AfrikaansAF AFAfrikaans
AlbanianSQ AMAmharic
AmharicAM ARArabic
ArabicAR ASAssamese
ArmenianHY AYAymara
AssameseAS AZAzerbaijani
AymaraAY BABashkir
AzerbaijaniAZ BEByelorussian
BashkirBA BGBulgarian
BasqueEU BHBihari
Bengali, BanglaBN BIBislama
BhutaniDZ BNBengali, Bangla
BihariBH BOTibetan
BislamaBI BRBreton
BretonBR CACatalan
BulgarianBG COCorsican
BurmeseMY CSCzech
ByelorussianBE CYWelsh
CambodianKM DADanish
CatalanCA DEGerman
ChineseZH DZBhutani
CorsicanCO ELGreek
CroatianHR ENEnglish, American
CzechCS EOEsperanto
DanishDA ESSpanish
DutchNL ETEstonian
English, AmericanEN EUBasque
EsperantoEO FAPersian
EstonianET FIFinnish
FaeroeseFO FJFiji
FijiFJ FOFaeroese
FinnishFI FRFrench
FrenchFR FYFrisian
FrisianFY GAIrish
Gaelic (Scots Gaelic)GD GDGaelic ("Scots Gaelic")
GalicianGL GLGalician
GeorgianKA GNGuarani
GermanDE GUGujarati
GreekEL HAHausa
GreenlandicKL HIHindi
GuaraniGN HRCroatian
GujaratiGU HUHungarian
HausaHA HYArmenian
HebrewIW IAInterlingua
HindiHI IEInterlingue
HungarianHU IKInupiak
IcelandicIS INIndonesian
IndonesianIN ISIcelandic
InterlinguaIA ITItalian
InterlingueIE IWHebrew
InupiakIK JAJapanese
IrishGA JIYiddish
ItalianIT JWJavanese
JapaneseJA KAGeorgian
JavaneseJW KKKazakh
KannadaKN KLGreenlandic
KashmiriKS KMCambodian
KazakhKK KNKannada
KinyarwandaRW KOKorean
KirghizKY KSKashmiri
KirundiRN KUKurdish
KoreanKO KYKirghiz
KurdishKU LALatin
LaothianLO LNLingala
LatinLA LOLaothian
Latvian, LettishLV LTLithuanian
LingalaLN LVLatvian, Lettish
LithuanianLT MGMalagasy
MacedonianMK MIMaori
MalagasyMG MKMacedonian
MalayMS MLMalayalam
MalayalamML MNMongolian
MalteseMT MOMoldavian
MaoriMI MRMarathi
MarathiMR MSMalay
MoldavianMO MTMaltese
MongolianMN MYBurmese
NauruNA NANauru
NepaliNE NENepali
NorwegianNO NLDutch
OccitanOC NONorwegian
OriyaOR OCOccitan
Oromo, AfanOM OMOromo, Afan
Pashto, PushtoPS OROriya
PersianFA PAPunjabi
PolishPL PLPolish
PortuguesePT PSPashto, Pushto
PunjabiPA PTPortuguese
QuechuaQU QUQuechua
Rhaeto-RomanceRM RMRhaeto-Romance
RomanianRO RNKirundi
RussianRU RORomanian
SamoanSM RURussian
SangroSG RWKinyarwanda
SanskritSA SASanskrit
SerbianSR SDSindhi
Serbo-CroatianSH SGSangro
SesothoST SHSerbo-Croatian
SetswanaTN SISinghalese
ShonaSN SKSlovak
SindhiSD SLSlovenian
SinghaleseSI SMSamoan
SiswatiSS SNShona
SlovakSK SOSomali
SlovenianSL SQAlbanian
SomaliSO SRSerbian
SpanishES SSSiswati
SudaneseSU STSesotho
SwahiliSW SUSudanese
SwedishSV SVSwedish
TagalogTL SWSwahili
TajikTG TATamil
TamilTA TETegulu
TatarTT TGTajik
TeguluTE THThai
ThaiTH TITigrinya
TibetanBO TKTurkmen
TigrinyaTI TLTagalog
TongaTO TNSetswana
TsongaTS TOTonga
TurkishTR TRTurkish
TurkmenTK TSTsonga
TwiTW TTTatar
UkrainianUK TWTwi
UrduUR UKUkrainian
UzbekUZ URUrdu
VietnameseVI UZUzbek
VolapukVO VIVietnamese
WelshCY VOVolapuk
WolofWO WOWolof
XhosaXH XHXhosa
YiddishJI YOYoruba
YorubaYO ZHChinese
ZuluZU ZUZulu




Trackback 0 And Comment 0