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

StackOverflow https://stackoverflow.com/questions/1016709

Вопрос

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

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

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

Итак, у нас есть:

  • ru-GB - Английский язык - Культура Великобритании
  • ru-США - Английский язык - Культура США
  • ru - Английский язык - инвариант культуры.
  • fr-FR – Французский язык – Французская культура
  • fr-CH – Французский язык – Швейцарская культура
  • de-CH – Немецкий язык – Швейцарская культура
  • de-DE – Немецкий язык – немецкая культура

Видишь MSDN для получения полного списка, который поддерживает .NET framework.

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

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

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

Это было полезно?

Решение

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

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

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

  3. Если вы считаете, что ваш способ лучше.Остановись, пусть кто-нибудь даст тебе пощечину.Это не так.Повторяйте по мере необходимости.

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

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

Другие советы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ДОПОЛНЕНИЕ:

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top