Язык: настройка браузера или ОС? - PullRequest
3 голосов
/ 02 августа 2011

Что это значит, когда "локаль" установлена, например, Японский язык? Означает ли это, что браузер настроен на распознавание японских символов? Или это больше связано с настройкой ОС?

Что касается i18n (интернационализация и локализация), как мы обнаруживаем, что у пользователя, который посещает наш сайт, есть, например, Японский язык, использующий JavaScript? Хватит ли следующей простой проверки?

var userLocale = navigator.language || navigator.userLanguage;
if (userLocale.toLowerCase() == 'ja-jp') { ... }

Может ли браузер японской локали вернуть что-то еще, а не ja-jp?

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

Ответы [ 2 ]

6 голосов
/ 02 августа 2011

Сначала нам нужно определить, что такое Locale. В используемом контексте это Идентификатор языка ISO639 , за которым необязательно следует Идентификатор страны ISO3166 . Это используется для определения предпочтений конечного пользователя (например, языка локализованного контента или форматов даты и времени и числовых форматов).

Теперь локаль может быть установлена ​​в нескольких местах. ОС обычно имеет несколько настроек, например раскладка клавиатуры, настройки форматирования, языковые настройки, кодовые страницы (для программ, не поддерживающих Юникод) и т. Д.
Кроме того, веб-браузеры обычно позволяют вам выбирать свои собственные настройки (Safari здесь исключение). Эти предпочтения отправляются вместе с каждым запросом на веб-сервер через заголовок HTTP Accept-Language. Это то, что вы должны как-то прочитать на стороне сервера (что, к сожалению, означает некоторый код на стороне сервера в PHP, C #, Java и т. Д.) И, возможно, передать его в свой сценарий на стороне клиента.
Здесь я должен заявить, что что-то вроде navigator.language не подходит для этого по двум причинам:

  1. Это не кросс-браузерная совместимость, то есть другим веб-браузерам потребуется другой код. То есть, если они позволяют читать эту информацию в первую очередь.

  2. Этот параметр обычно относится к языку веб-браузера (язык интерфейса веб-браузера которого переведен) и не имеет ничего общего с фактическими предпочтениями пользователя.

Итак, чтобы ответить на ваш вопрос: нет, этой проверки не хватит.

0 голосов
/ 02 августа 2011

Это в основном настройки ОС / браузера, например, управление язык ОС, формат даты / времени, десятичная точка / запятая и т. д. - другими словами, настройки, которые различаются в разных регионах мира. Это не имеет прямой связи с поддержкой шрифтов и символов.

Насколько я знаю, ja-jp является единственной стандартизированной комбинацией японского языка / языка; но, как @ Siku-siku.com предложил в комментариях "(на основе реальных испытаний с использованием японской версии IE / WinXP), также проверьте наличие ja, потому что это одна из доступных опций в настройке языка IE."

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