Ответ 1
В объекте navigator
существуют следующие свойства (которые также могут быть известны как clientInformation
для IE, но нет причины использовать это имя):
-
language
(не IE, язык установки браузера) -
browserLanguage
(IE, язык установки браузера) -
userLanguage
(IE, языковые настройки уровня OS на уровне пользователя) -
systemLanguage
(IE, язык установки ОС)
Но! Вы никогда не должны использовать какие-либо из этих свойств! Во многих случаях они будут неправильным языком.
Ни один из них не отражает языковые настройки, которые пользователь фактически настраивает в пользовательском интерфейсе предпочтительных языков браузера, и они могут быть недоступны для пользователей. Вы можете вызвать большие разочарования, используя любое из этих значений без дополнительного простого ручного способа переключения языков.
Правильное место, которое нужно понюхать, чтобы решить, какой язык использовать по умолчанию, как настроено обычным пользовательским интерфейсом браузера, является Accept-Language
заголовок, переданный вашему серверу в HTTP-запросе. Это ранжированный список предпочтительных языков, из которых вы можете выбрать, и это то, что ASP.NET использует, чтобы угадать автоматическую клиентскую культуру, если вы ее используете.
К сожалению, это свойство недоступно в JavaScript!
Что вы обычно делаете, это использовать серверную часть для анализа заголовка Accept-Language
и выбрать один подходящий язык для его использования. В ASP.NET вы можете получить предварительно отсортированный список из HttpRequest.UserLanguages и выбрать первое, что вам нравится.
Затем вы вводите это имя языка в элемент <script>
, чтобы передать информацию о языке на клиентскую сторону.