Есть ли способ определить язык ОС с помощью javascript?

Мне нужно определить язык ОС с помощью javascript, чтобы я мог просматривать свою страницу в зависимости от языка.

Я знаю, что мы можем обнаружить язык браузера, но мне этого недостаточно.

Мне нужен язык операционной системы

спасибо заранее

4 ответов


нет кросс-браузерного способа сделать это. Internet Explorer поддерживает следующее:

  • navigator.browserLanguage: язык браузера
  • navigator.systemLanguage язык системы Windows
  • navigator.userLanguage: пользовательский язык Windows

но нет никакого способа получить доступ к этим настройкам из любых других браузеров (что я могу сказать) так не используйте их: придерживаться стандарта navigator.language (соответствует языку браузера), Если вы хотите поддерживайте функциональность кросс-браузера. Если вы их используете, вы привяжете свой веб-сайт к определенному семейству операционных систем (например, Windows) и определенному браузеру (например, Internet Explorer). Ты действительно хочешь это сделать?

Почему язык браузера недостаточен для вашего приложения?


вы мая просто Угадай OS язык учитывая несколько факторов:

ОС Windows

Internet Explorer

  • navigator.browserLanguage: язык IE (меню, Справка и т. д.), то же, что и язык отображения ОС (если пользователь не изменил его). Как в Панели Управления - > регион и язык - > клавиатуры и Lanugages - > язык дисплея
  • navigator.systemLanguage: как в Панели Управления - > регион и язык - > Местоположение
  • navigator.userLanguage: как в Панели Управления - > регион и язык - > форматы

API интернационализации ECMAScript

var d=new Date(Date.UTC(2014,1,26,3,0,0));
var dateFormat={weekday:"long",year:"numeric",month:"long",day:"numeric"};
var result = d.toLocaleDateString("i-default",dateFormat);
alert(result);
//e.g. for Russian format ( Control Panel -> Region and Language -> Formats ) 
//result == 'среда, 26 февраля 2014 г.'

поиск result на вашем сервере над предварительно сгенерированным набором отформатированных дат на разных языках.

NB! Chrome возвращает дату, отформатированную на языке пользовательского интерфейса.

Adobe Flash

Если вам отчаянно нужно знать язык ОС-embed вспышка на странице и использовать вспышка.система.Способности.язык:

NB! Chrome не позволяет трюк - вспышка Chrome всегда показывает browser.language, Я думаю, потому что у него есть собственная вспышка.

Firefox и Chrome

navigator.language сообщает вам язык пользовательского интерфейса браузера (меню, Справка и т. д.) а ты мая предположим, что в подавляющем большинстве случаев он соответствует языку ОС (особенно для домашние компьютеры): при загрузке FF или Chrome страница загрузки отображается в соответствии с браузером пользователя-в Windows это IE на том же языке, что и ОС.

очень странно, что Chrome сам по себе вещь, когда дело с параметрами среды браузера, увы.


вы можете использовать пользовательский агент. Однако его можно легко подделать, он не гарантированно содержит языковую информацию и navigator.language и navigator.browserLanguage вероятно будет более надежным.


одна вещь для всех здесь, чтобы рассмотреть, не все пользователи знают, как установить свои языковые предпочтения браузера. Поэтому, если вы создаете сайт, который хотите показать людям, ваша проблема, если они приземляются на нем на другом языке, чем тот, с которым им комфортно, поскольку это увеличивает изменения, которые они оставят. Многое зависит от демографии, на которую вы нацелены, но для веб-страницы я думаю, что хорошо обнаружить системный язык, если вы можете, по крайней мере, затем вернуться к языку браузера если не можешь. Это более вероятно, чтобы быть точным.