Есть ли способ обнаружить язык ОС с помощью javascript? - PullRequest
7 голосов
/ 09 октября 2010

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

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

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

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

Ответы [ 4 ]

13 голосов
/ 09 октября 2010

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

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

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

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

3 голосов
/ 20 мая 2015

Ты может просто догадываюсь ОС язык с учетом нескольких факторов:

ОС Windows

Internet Explorer

  • navigator.browserLanguage: язык IE (меню, справка и т. Д.), Такой же, как язык отображения ОС (если пользователь не изменил его). Как в Панели управления -> Регион и язык -> Клавиатуры и языки -> Язык интерфейса
  • navigator.systemLanguage: как в Панели управления -> Регион и язык -> Расположение
  • navigator.userLanguage: как в Панели управления -> Регион и язык -> Форматы

Интерфейсный интерфейс 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

Если вам крайне необходимо знать язык ОС & mdash; вставьте flash на свою страницу и используйте flash.system.Capabilities.language :

NB! Хром не позволяет использовать трюк & mdash; Вспышка Chrome всегда показывает browser.language, я думаю, потому что она имеет собственную вспышку.

Firefox и Chrome

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

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

2 голосов
/ 09 октября 2010

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

0 голосов
/ 10 декабря 2012

Здесь каждый должен учитывать одну вещь, не все пользователи знают, как установить языковые предпочтения браузера.Поэтому, если вы создаете сайт, который вы ХОТИТЕ, чтобы люди увидели, то это ваша проблема, если он заходит на него не на том языке, на котором им удобно, поскольку это увеличивает изменение, которое они оставят.Во многом это зависит от целевой аудитории, но для веб-страницы я думаю, что было бы хорошо определить системный язык, если вы хотя бы можете, а затем переключиться на язык браузера, если не можете.Это, скорее всего, будет точным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...