Как веб-сайты должны работать с настройками локализации? (из «Каковы распространенные заблуждения и недовольства пользовательского интерфейса?») - PullRequest
14 голосов
/ 19 июня 2009

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

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

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

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

  • ru-RU - английский язык - культура Великобритании
  • en-US - английский язык - культура США
  • 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 имеет еще одну хорошую статью здесь для получения дополнительной информации

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

Ответы [ 8 ]

13 голосов
/ 29 июня 2009

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

  1. Уважайте настройки браузера. Если это говорит по-английски, то, черт возьми, это английский.

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

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

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

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

4 голосов
/ 13 июля 2009

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

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

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

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

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

3 голосов
/ 31 июля 2009

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

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

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

3 голосов
/ 26 июня 2009

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

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

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

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

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

2 голосов
/ 23 июня 2009

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

1 голос
/ 22 июня 2009

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

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

Сложение:

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

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

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

1 голос
/ 20 июня 2009

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

0 голосов
/ 07 июля 2009

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

...