Как стать автором
Обновить

Не пытайтесь угадать мой язык

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров12K
Автор оригинала: Robert Vitonsky

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

IP сообщает, откуда пришёл запрос, и на этом всё. Он не сообщает, какой язык нужен пользователю, на каком языке он говорит и какой язык понимает. Подобная система постоянно ломается: VPN, путешествия, эмиграция, страны с несколькими официальными языками. Это не умное, а раздражающее решение.

Страна — это не язык

Невозможно вывести полные соответствия. В Бельгии три официальных языка, в Швейцарии — четыре, в Индии — 22, Канада официально двуязычна, а неофициально — многоязычна. Пользователи могут жить в этих странах, путешествовать по ним или вообще никак не быть связанными с ними, за исключением маршрутизации трафика. Зачем же вы принудительно включаете UI на одном языке просто из-за того, что какая-то база данных GeoIP сообщила вам, к какой стране относится IP?

Вы делаете допущения на основе плохих данных, это не продуманная разработка, а лень, замаскированная под UX.

Нет, ни один из крупных веб-сайтов, которые делают так, не реализует это правильно. У нас не карго-культ. Делайте правильно или не делайте вовсе.

Лично я активно пользуюсь VPN, и каждый раз, когда захожу в Google со включенным VPN, то не могу ничего понять, потому что из-за ротации IP моего сервиса VPN используется какой-то произвольный язык.

У вас уже есть нужный инструмент

Каждый браузер отправляет заголовок Accept-Language. Он сообщает, какой язык предпочитает пользователь: не на основании его местоположения, не на основании его IP, а на основании его конфигурации операционной системы или браузера. И да, пользователи могут менять эту настройку, если им это важно.

Это выглядит так: Accept-Language: en-US,en;q=0.9,de;q=0.8

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

Вы не меняете разрешение экрана и цветовую схему на основе собственных догадок, так зачем поступать так с языком?

Так почему же вы не слушаете?

Вы отображаете английский французу в Германии, вы показываете голландский жителю Брюсселя, говорящему на французском, вы включаете китайский для человека с гонконгским VPN, не понимающим на нём ни слова. Пользователей это бесит, кто-то из них уходит, кто-то копается в UI, чтобы исправить устроенный вами бардак.

И всё это потому, что вы предпочли пользоваться какой-то непонятной базой IP вместо заголовка самого браузера.

Вот единственный разумный подход

  • Считайте Accept-Language

  • Учтите его

  • Позвольте пользователю при необходимости менять язык (и запоминайте этот выбор при помощи куки или параметра URL)

  • Если вы хотите использовать GeoIP, пользуйтесь им, но только для валюты, расчёта стоимости доставки и юридической информации, и никогда для языка

Ваше ПО предназначено для живых людей, вы не имеете права гадать, чего они хотят. Сделайте всё правильно или не делайте вовсе.

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
+145
Комментарии88

Публикации

Ближайшие события