Следующие свойства на navigator
объекта (который также может быть известен как clientInformation
на IE, но нет никакой причины, когда-либо использовать это имя):
language
(не-IE, браузер установить язык)
browserLanguage
(IE, браузер установить язык)
userLanguage
(IE, на уровне пользователя ОС широкоугольное языка)
systemLanguage
(IE, OS язык установки)
Но! Вы никогда не должны использовать какие-либо из этих свойств! Во многих случаях они будут неправильным языком.
Ни один из них не отражает настройки языка, которые пользователь фактически настраивает в пользовательском интерфейсе предпочтительных языков браузера, и их трудно изменить для пользователей. Вы можете вызвать большие разочарования, используя любое из этих значений без дополнительного простого ручного способа переключения языков.
Правильное место, которое вы должны понюхать, чтобы решить, какой язык использовать по умолчанию, как настроено обычным пользовательским интерфейсом браузера, является заголовок Accept-Language
, переданный вашему серверу в HTTP-запросе. Это ранжированный список предпочтительных языков, из которых вы можете выбрать, и это то, что ASP.NET использует, чтобы угадать автоматическую клиентскую культуру, если вы ее используете.
К сожалению, эта недвижимость недоступна в JavaScript!
Что вы обычно делаете, это использование вашей серверной части для анализа заголовка Accept-Language
и выбора одного подходящего языка для его использования. В ASP.NET вы можете получить предварительно отсортированный список из HttpRequest.UserLanguages и выбрать первый, который вам нравится.
Затем вы выплевываете это имя языка в элемент <script>
, чтобы передать информацию о языке на клиентскую сторону.
Под «культурой» вы подразумеваете текущую настройку локали, установленную в браузере? (Я никогда не слышал, что называется «культура» раньше, но я некультурный.) – Pointy
Да, это именно то, что я имею в виду. Я привык работать с asp-локализацией, и именно так оно и называется. Поэтому мой охват по нему, называемый «культура», ограничен. Неудивительно, что мне было так сложно найти эту информацию в Интернете! –
Это связанный с этим вопрос: http://stackoverflow.com/questions/1043339/javascript-for-detecting-browser-language-preference – Damien