Как к получению браузера текущее предпочтение локали с помощью JavaScript?

Кто-либо знает, как получить культуру браузера из Firefox и Google Chrome с помощью JavaScript?Примечание: Это - asp.net 3,5 веб-приложения.

Требование состоит в том, чтобы попытаться установить культуру дисплея приложения на основе культуры браузера. Я нашел очень немного остатков информации для других браузеров, но они, кажется, не работают.

Я могу получить его в IE со следующим отрывком кода:

var browserCulture = this.clientInformation.browserLanguage;

Любая информация была бы большой!

38
задан Reinstate Monica 29 August 2013 в 10:50
поделиться

2 ответа

Следующие свойства существуют в объекте навигатора (который также может называться clientInformation в IE, но есть нет причин использовать это имя):

  • язык (не IE, язык установки браузера)
  • browserLanguage (IE, язык установки браузера)
  • userLanguage (IE, пользователь -уровневая настройка языка ОС)
  • systemLanguage (IE, язык установки ОС)

Но! Никогда не используйте ни одно из этих свойств! Во многих случаях они будут неправильным языком.

Ни один из них не отражает языковые настройки, которые пользователь фактически может настроить в пользовательском интерфейсе «предпочитаемых языков» браузера, и изменить их сложно или невозможно. Вы вызовете большое разочарование, используя любое из этих значений без дополнительного простого ручного способа переключения языков.

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

К сожалению, это свойство недоступно в JavaScript!

Обычно вы используете серверную часть для анализа заголовка Accept-Language и выбора из него единственного подходящего языка. В ASP.NET вы можете получить предварительно отсортированный список из HttpRequest.UserLanguages ​​ и выбрать первый, который вам нравится.

Затем вы добавляете это название языка в элемент