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