Как веб-сайты должны учитывать настройки локализации? (из "Что такое общие заблуждения и раздражения в пользовательском интерфейсе?" )

Я решил принять это как вопрос в своем собственном праве, так как он генерировал столько дискуссий в комментариях исходного сообщения.

Интересно видеть, что многие люди на SO (которые являются разработчиками) просто не получают локализации. Heres мой взять на себя, как он должен работать:

Во всех браузерах, на которые я смотрел (и для разработчиков .NET там тоже), когда вы смотрите на предпочтения пользовательской культуры, он находится в следующем формате: язык культура.

Итак, мы имеем:

  • en-GB - Английский язык - культура Великобритании
  • en-US - Английский язык - культура США
  • ru - Английский язык - Инвариантная культура.
  • fr-FR - французский язык - французская культура
  • fr-CH - французский язык - швейцарская культура
  • de-CH - немецкий язык - швейцарская культура
  • de-DE - немецкий язык - немецкая культура

См. MSDN для полного списка, поддерживаемого платформой .NET.

Когда я перехожу на сайт, он знает, что я хочу, чтобы английский язык был частью en, и он знает, что я заинтересован в том, чтобы он был наклонён в Великобританию (форматирование чисел, форматирование даты). Поэтому, когда я перехожу на google.com, и он переводит меня на google.de(из-за моего IP-адреса), это прекрасно, если google.de отображает все на мне по-английски, но совершенно неправильно, так как google.de находится на немецком языке. Я мало контролирую свой IP-адрес, но полностью контролирую настройки языка и культуры. Если вас заинтересовала новая поисковая система Microsoft (bing.com), она правильно обрабатывает. Пусть надеется, что Microsoft научится выполнять поиск, а также Google или Google может научиться локализовать, а также Microsoft;)

MSDN есть еще одна хорошая статья здесь для получения дополнительной информации

Итак, каковы ваши рекомендации относительно того, как сайты должны иметь дело с локализациями?

Ответы

Ответ 1

Решение здесь настолько простое, что раздражает, что dev делает что-то еще.

  • Соблюдайте настройку браузера. Если он говорит по-английски, то богом это по-английски.

  • Если вам абсолютно необходимо, просто добавьте кнопку вверху, чтобы выбрать что-то еще. Затем, и ТОЛЬКО, вы переопределяете браузер.

  • Если вы думаете, что ваш путь лучше. Остановитесь, попросите кого-нибудь пощечинить вас. Не это. Повторите при необходимости.

  • Избавьтесь от этих веб-страниц, которые просят кого-то из стран. Просто покажите свою обычную страницу, исходя из настроек браузера по умолчанию и см. Пункт 2 выше. Мне еще предстоит столкнуться с сайтом, на котором это действительно имеет значение. обновление: несколько лет спустя, и теперь есть причина для этого. В 2013 году Великобритания установила политику, связанную с кукисами, которую веб-операторам необходимо соблюдать для сайтов, расположенных в этой стране, которые обслуживают страницы для посетителей из этой страны. Поэтому обратите внимание на законы в странах, в которых вы размещены.

  • Если у вас есть сайт, который действительно обслуживается несколькими серверами в разных странах, то вы, вероятно, можете обнаружить, какой из ваших серверов действительно ближе к сервису. Если вы не можете, просто прекратите перенаправление безумия, а затем не пытайтесь и не определяете их.

Ответ 2

Если доступны настройки локализации, включая заголовок HTTP-Accept-Language (но не ограничиваясь этим), веб-сайты должны их соблюдать.

Общий аргумент против этого заключается в том, что "средние пользователи" недостаточно интеллектуальны, чтобы найти языковые настройки и настроить их в соответствии со своими собственными настройками, поэтому эти параметры чаще всего являются неправильными (если только пользователь не выполняет быть в пределах США).

Это неправильное решение.

Если существенный сегмент пользовательской совокупности не может найти (или не может быть обеспокоен) их настройками языка браузера, то правильный ответ должен сделать их более легкими для поиска, а не для сайтов игнорировать то, вы были настроены. Возможно, настройки языка непосредственно доступны из меню верхнего уровня программы, вместо того, чтобы зарыть его в сложное диалоговое окно "Настройки". Возможно, сначала попросите языковые предпочтения при запуске программы. Возможно, используйте настройки локализации операционной системы. Или, может быть, что-то совершенно другое, если это необходимо, чтобы убедиться, что браузер будет отправлять правильную информацию о предпочтениях пользователя. Но не просто бросайте руки, говорите "это бесполезно и не может быть исправлено!", И игнорируйте его.

В других ответах говорилось о том, чтобы позволить пользователю выбрать язык или локаль в своем профиле на сайте, что также важно и абсолютно обязательно должно быть стандартным, но это просто для того, чтобы обеспечить переопределение для конкретного пользователя для обычных настроек пользователя. Однако, если пользователь не переопределил это на сайте, правильное действие по умолчанию соответствует самому предпочтительному доступному языку/языку, указанному в настройках браузера, а не привязывать его к геолокации их IP-адреса.

Ответ 3

В какой-то момент моей карьеры я поддерживал части стека TCP/IP. Это ставит меня в несколько редкую позицию, зная, что IP-адреса не должны использоваться как что-либо кроме адресов сетевого уровня. Любая связь между IP-адресом и местоположением является практически случайным - это артефакт распространения адресов, а не фундаментальная часть того, что означает IP-адрес.

(Они также не полезны в качестве уникального идентификатора компьютера, но это другая история)

Я предлагаю оставить геолокацию. Стандарт HTTP включает способ для браузера или другого пользовательского агента включать предпочтения культуры пользователей с каждым запросом (и помнить, что это список взвешенных предпочтений, а не только одна культура). Поскольку браузер ближе к пользователю, чем вам, вы должны соблюдать этот запрос, по крайней мере, по умолчанию.

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

Наконец, это нормально, чтобы иметь резервный шаблон. Если, например, у вас есть сайт, который обслуживает пользователей на основе своего региона (например, реселлеры), то возможно, что японский контент существует только на вашем азиатском региональном подсайте. Японскоязычный пользователь, посетивший ваш сайт в регионе EMEA, может просто застрять, увидев английский контент, что вполне может быть его последним выбором.

Ответ 4

На сайтах, которые я создаю, я обычно следую этому шаблону:

  • Каждая страница имеет уникальный URL-адрес с языком в нем где-то, обычно как /en/page или другой (дополнительный) домен
  • Если пользователь открывает URL-адрес с неопределенным языком, например /page, я начинаю гадать:
    • Доступен ли файл cookie из предыдущего сеанса?
    • Если нет, доступно Accept-Language и я могу сопоставить его с языком, доступным на сайте?
    • Если нет, если это возможно, могу ли я предположить по IP?
    • Если нет, по умолчанию используется язык по умолчанию для сайта.
  • Я установил cookie с угаданным языком и перенаправил пользователя на сайт с соответствующим URL
  • Я помещаю языковой переключатель на каждую страницу, поэтому /en/page можно легко переключить на /xx/page
    • Cookie обновляется, если пользователь переключается на другую страницу

В идеале мне нужно только угадать один раз, а затем использовать cookie пользователя или пользователь сразу посещает нужную страницу.

Ответ 5

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

Ответ 6

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

Ответ 7

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

Я не знаю, как это сделать. Не дать пользователям возможность исправить ваши предположения является очень проблематичным, потому что вы собираетесь ошибаться некоторое время.

Сложение:

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

Я предлагаю соблюдать настройки локализации пользователей, за исключением случаев, когда параметр является подавляющим значением по умолчанию, которое пользователи не могут изменить. Например, я считаю, что подавляющее большинство (90 +%) пользователей с настройкой en-us, размещенной во Вьетнаме, почти всегда будет лучше обслуживаться, если посмотреть на вьетнамский контент, а не на английский английский контент, если есть тривиальный способ переключения локали. С другой стороны, если пользователь, имеющий географию в США, имеет вьетнамскую обстановку, непременно дайте ему или ей вьетнамский контент.

Это раздражает для англо-английских пользователей во Вьетнаме? Конечно. Но это также самое большое преимущество для наибольшего числа и помогает обеспечить, чтобы средние нетехнические пользователи получали лучший опыт в реальном мире. Пока мы не сможем держать пистолет в головах пользователей и заставить их честно заявить о своих предпочтениях в отношении языка/культуры, прежде чем включать компьютер, нам понадобятся эвристики, подобные этому.

Ответ 8

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