현재 브라우저 언어 설정값을 가져오는 방법에는 IE와 비IE(파폭, 크롬 등등)의 차이가 있습니다.
IE의 navigator객체에는 systemLanguage, userLanguage, browserLanguage 가 있어 마치 브라우저 언어를 보여줄 것 같지만,
전혀 그렇지 않아 사람을 혼란에 빠트리죠.
혼란을 주는 IE전용 속성
- navigator.userLanguage OS의 제어판 – 국가 및 언어 – 입력언어를 나타낸다.
- navigator.browserLanguage, navigator.systemLanguage OS의 제어판 – 국가 및 언어 – 표시언어의 반환한다.(browserLanguage와 systemLanguage의 차이는 발견하지 못했다.)
- 모두 OS 언어 설정과 연관되어있다
$(function(){ /* * 비 IE에서는 navigator.language 로 브라우저 현재 설정된 언어를 쉽게 알 수 있으나, * IE에서는 브라우저에 설정된 언어를 알 수 있는 navigator.language 속성이 없기때문에, * HTTP 응답 헤더값을 알아와야 하는 별도 처리가 슬프게도 필요 합니다. */ var language; if (navigator.language) { // 비 IE에서 작동 language = navigator.language } else { // IE에서 작동 $.ajax({ url: "http://ajaxhttpheaders.appspot.com", dataType: 'jsonp', success: function(headers) { language = headers['Accept-Language']; alert(language) // 요청 헤더에서 추출한 사용자 브라우저의 언어를 열거합니다. } }); } });