Комментарии 88
В точку )
Так почему же вы не слушаете?
Потому, что в бровсерах нет вменяемого UI для установки этого параметра. Поэтому у пользователей он в среднем не настроен.
У среднего пользователя он тот же, что и в системе. И его довольно редко требуется менять после установки
В Chrome это Настройки -> Языки. Открывается список предпочитаемых языков. То есть в самом часто используемом браузере это не так уж и сложно.
Ну т.е., надо где-то что-то искать в довольно развесистом гуглохромовском меню. Да еще и на втором уровне вложенности. Нормальный человек туда не полезет, конечно.
ИМХО, правильно бы было, чтобы бровсер сам проявлял инициативу и спрашивал (например, на первом запуске) пользователя об его языковых предпочтениях.
Примерно так, как гуглёвый поисковик пристает (да еще и весьма настойчиво) с вопросом, не надо ли предпочитать ответы на определенном языке и не надо ли организовать трансляцию найденных текстов.
Размещать такую опцию, которая нужна один раз за жизнь, может два, если какой-то язык начал учить, на первом уровне, рядом с Печать и Выход? Вы уж не перегибайте. Второй уровень вложенности - это очень близко, и если это хоть чуть-чуть надо, то можно догадаться, как туда попасть, кликнув по шестерёнке, а потом по иконке с буковками.
что-то искать в довольно развесистом гуглохромовском меню
Menu - Settings - Languages -- это сложно для вас?! Что вы делаете на Хабре ? (-;
Это очень сложно для 99,99% пользователей браузеров. Просто в силу того, что они не лезут в дебри настроек и используют конфигурацию "из коробки" (максимум поисковую систему сменят, если их любимый поисковик вывесит модальник с предложением сделать это).
Так что доступный веб-программисту вариант - выцепить то самое "en-US", которое браузер подтягивает из системы (а системный язык если и будет не родным для пользователя, то по крайней мере окажется худо-бедно понятен). И это будет всяко лучше, нежели "тыкать пальцем в небо GeoIP"...
максимум поисковую систему сменят, если их любимый поисковик вывесит модальник с предложением сделать это
Ситуация ещё хуже. Подавляющее большинство вообще эти модальники не читает, а сразу жмёт ок/yes/continue/next. В лучшем случае просто закроет его, если есть крестик в правом верхнем углу. Да и вообще у большинства такое отношение к любым диалоговым окнам, не только в вебе. Поколение по-моложе пытается показать, мол смотри как я быстро управляюсь с техникой, а поколение по-старше даже если читает, то обычно это им ничего не говорит. Поэтому у обычных пользователей комп захламлён всякой всячиной, половину из которых можно было вообще избежать просто убрав незаметную галочку в инсталяторе очередного яндекс браузера.
Согласен, только добавлю такую поправку:
99,99% - это, похоже, образно.
По своим ощущениям - около 4/5, т.е. ~80%
Браузеры по умолчанию наследуют настройки операционной системы.
Если у пользователя система на en-us
, значит, он наверное хоть что-то в английском понимает.
Далеко не всегда.
У меня батя очень долго работал в компании, которая работала с америкосами. Поэтому он привык использовать английскую винду + pm/am. Я тоже на постоянке использую всё английское, а вот мать не знает английский вообще, но за запрос поменять язык системы, получает вечно в лоб, так как использовать русскую версию форточки для батька и меня невыносимо(просто не помним уже название инструментов и опций, а переучиваться ради одного человека это не очень целесообразно).
У меня свой комп, я в другие не лезу, а вот у них двоих один общий. Она уже вроде со временем наловчилась использовать англоязычную форточку для своих нужд, но предлагать на основе языка системы сайты не всегда хорошая идея.
Вот по языку аккаунта гугла - норм, так как там у всех(кроме меня) стоит русский как основной.
Создайте пользователя с русской локалью, не?
Разве в Windows нельзя установить разные яхыки для разных пользователей?
Я не в курсе, не использую win лет 15
c некоторых пор вообще нельзя разные языки. Это реальная боль, когда всю жизнь учил языки методом переключения интерфейса, но учишь 2+ языка одновременно
Проверял на win 10. Ноуп)
Можно раскладку, но не язык ОС
Вот по языку аккаунта гугла - норм, так как там у всех(кроме меня) стоит русский как основной.
Если бы. В Google страна Финляндия, язык американсий, В OC и Firefox ничего финского. Периодически получаю результат поиска на финском языке :(
Гугл мог подставить автоматом финский язык как один из возможных.
У меня он какого-то фига засунул туда... АРАБСКИЙ как рекомендуемый. А так у меня штаты вроде стоят как страна в акке
Бывает хуже.
Reddit подсовывает финские сабреддиты (потому что VPN).
Гугл показывает рекламу на русском/английском/европейских языках. Причем некоторые объявления (в том числе и те что на европейских языках) - из серии - пользователь из России либо УЖЕ это делает потому что считает правильным либо делать не будет и не потому что в России за такие вещи - статья
Вот по языку аккаунта гугла - норм, так как там у всех(кроме меня) стоит русский как основной.
А как сайт узнает настройки моего аккаунта Гугла?
В firefox вполне вменяемый механизм

Потому, что в бровсерах нет вменяемого UI для установки этого параметра. Поэтому у пользователей он в среднем не настроен.
в бровсерах нет вменяемого UI для установки этого параметра
Моё лицо, когда я сначала хочу написать, что в бровсерах НЕ ДОЛЖНО быть этого параметра, потому что это точка деанонимизации, но потом осознаю, что никто просто не поймёт, о чём он, чёрт возьми, говорит:

Тогда в догонку еще часовой пояс добавьте, он тоже шикарно деанонимизирует в некотором смысле, а контроля нет.
Анонимность вещь эфимерная, вроде бы существует, но на практике требует на столько больших усилий, что считай для большинства ее и нет.
Да.
Ну а раз мы друг друга так понимаем, давайте сразу перейдём к мякотке: смена флага Do not track me с дефолтного off на on повышает уникальность фингерпринта в 4 раза! Когда я узнал, как его используют на самом деле, был под большим впечатлением. (Оно до сих пор, как видите, не изгладилось).
Очень интересно, но не очень понятно. Типа пользователей с этой галкой мало и это повышает уникальность фингерпринта?
Есть определённая степень гамартии в том, что следят именно за теми, кто пытается что-то скрыть.
Скорее всего паттерны, по которым происходит деанонимизация, у людей, меняющих эту опцию, похожие, менее хаотичные что ли.
Т.е. не опция виновата, а сами люди, кто ее включает, более 'предсказуемы'
не очень понятно
Включите эту галку и посмотрите, как это повлияет на уникальность принта:
https://amiunique.org/fingerprint
А лучше не смотрите, если не хотите расстроиться. Особенно не смотрите на фонт-лист, канвас и WebGL. Но, конечно, то, как с подачи производителей бровсеров используют permission list и Do not track, говорит о том, что все они — изощрённые мерзавцы. Впрочем, как и капитализм в целом. (А социализм ещё хуже).
Это совершенно точно лучше, чем установка языка в аккаунте на сейте, но для этого вам нужно зарегистрироваться на сайте некорректно выбранным языком и найти этот пукнт в настройках (Гугл, ты совсем того? Блогспот таким же страдает)
В первую очередь касается Гугла
Считается, что уж если приехал в Турцию со своим ноутом, просто обязан говорить по-турецки.
А если в Антарктиду?
Блин, нужен эксперимент! Знаете VPN провайдера в Антарктиде?
ich kann hier keinerlei Problem erkennen.
В Японии из крупных компаний похоже что только Амазон позволяет выбрать не японский (английский) язык. Все остальные как под копирку: "ой, вы в Японии - хотите перейти на сайт для вашей страны? - отлично! переключаем всё на японский язык без возможности смены".
Скажите это Spotify. "Вот вам и локаль, и бан".
Сам посыл статьи тривиален. А вот было бы гораздо интереснее и полезнее увидеть обсуждение того, каким именно напалмом выжигать практику применения GeoIP для определения локали.
Мы за доказательную медицину сайты.
По настоящему полезная статья была бы такой: "мы протестировали на миллионах пользователей в первой сотне стран по количеству пользователей интернет, вот процент ошибок при определении по GeoIP, вот -- процент ошибок при определении по Accept-Language для каждой страны, вот библиотека на github, которая использует лучшее из обоих способов".
Например, лучшим мог бы такой вариант: если в Accept-Language не стандартные en-us, то показываем по нему. А если там дефолт, то по geoip (это предположение, я не проверял).
en-US
стандартны только для браузера с интерфейсом на американском английском т.к. есть ещё как минимум британский. Firefox имеет ещё и канадский диалект английского.
В случае интерфейса на другом языке и значение в Accept-Language
будет другим. А интерфейс браузера либо выбирается при установке либо, в случае "системного" браузера по-умолчанию равен языку операционной системы.
Я там ниже написал, значит, у нас до 35% людей имеют en-us в ОС. И они не хотели бы получить на хабре список постов на английском . Это (en-us) только нашей страны касается, не удивлюсь, если в Турции, например, "нежелательный default" - en-gb. А в каких-нибудь странах Африки нежелательный дефолт будет французским.
Я примерно оценил по счётчику liveinternet за конкретный момент: в России доля en-us доходила до 35%, при этом доля США в трафике была 5%. Даже если предположить, что все посетители из США реально хотели бы en-us версию, всё равно, оставшиеся 35-5=30% наших посетителей получили бы английскую версию внезапно. Против своего желания.
Финал статьи должен быть такой:
Никогда не ориентируйтесь только на
Accept-Language
Если уж вы его считали, то никогда не надейтесь, что язык en там осознанно, en-us всегда выбрасывайте и используйте GeoIP в этом случае для определения языка
Можно использовать и только GeoIP, тоже норм сработает
Всё-таки есть разница между ориентированием на Accept-Language
и на GeoIP.
В случае решения на основе Accept-Language
человек получит результат на языке, который может не быть его родным, но который тот с высокой вероятностью хоть как-то понимает. Это очевидным образом следует из того, что значение этого заголовка:
Либо установлено человеком самостоятельно
Либо соответствует локали (языку интерфейса) браузера
Либо соответствует локали (языку интерфейса) операционной системы
Вероятность того, что человек знающий, например, только русский сидит на, условно, китайской операционке и в браузере с интерфейсом на фарси, возможно и не нулевая, но почти наверняка очень невелика.
Кроме того, есть возможность того что человек сознательно хочет получить результат на языке, который не является его родным. Например, хотя мой родной язык - русский, я точно не хочу, заходя на условный MDN, получать результат на русском.
В отличие от этого, как было верно замечено в статье, решение на основе IP адреса легко приводит к тому что человек получает результат на совсем незнакомом ему языке. К примеру я использую VPN с IP в Финляндии, который принадлежит Hetzner. При этом Google упорно подсовывает мне все результаты на немецком (т.е. видимо смотрит даже не на IP, а на принадлежность ASN), а другие сайты зачастую отдают контент на финском. Ни немецкого ни финского я не знаю, зато вынужден каждый раз искать как же это переключить хоть на что-то знакомое.
Мы говорим не о конкретном ITшнике, а о статистике и о среднем пользователе. По Accept-Language вы в 30% случаев включите для среднего русского пользователя английский язык. Это явно неприемлемый процент ошибки для сайта.
Скажите пожалуйста, статистику какого сайта вы замеряли, получив цифру в 35%, к которой вы аппелируете? Или это "средняя температура по больнице"?
Если речь идёт о, например, Хабре, преимущественно нацеленном на русскоязычную аудиторию - то, разумеется стоит учитывать и IP адрес.
Однако в случае действительно международных сайтов опираться на IP, тем более в качестве основного (а зачастую и единственного) фактора для выбора языка - плохая идея, о чём, собственно, и статья.
Разумеется, единственный действительно корректный способ узнать правильный ответ - это спросить у пользователя (что, кстати, многие глобальные сайты делают). Другое дело что язык этого вопроса тоже должен быть понятен пользователю, так что здесь мы снова возвращаемся к задаче определения языка. Но в таком варианте хотя бы можно использовать разные факторы для выделения предпочтений и их ранжирования, а не для автоматического выбора.
Да, а вот сайт я смотрел ITшный, то есть неудачный, признаю :(
Я посмотрел "вообще группу ru": https://www.liveinternet.ru/stat/ru/languages.html?period=month
И там ru-ru + ru занимают 92%
здесь мы снова возвращаемся к задаче определения языка.
Опыт Википедии прекрасно демонстрирует, что определение языка в этой задаче на хрен не нужно. Достаточно меню с названиями языков, написанных на самих этих языках.
Я согласен, но в случаях глобальных порталов вендоров им может быть важно сразу перенаправить посетителя на региональный вебсайт, в таком случае вопрос о стране вполне может быть задан сразу. И моё замечание как раз о том, на каком языке задавать этот вопрос.
Хотя, перечитав свой предыдущий комментарий, понял что не очень удачно выразил свою мысль.
Разумеется, единственный действительно корректный способ узнать правильный ответ - это спросить у пользователя
И не только спросить, но и запомнить ответ. Если уж собираете информацию о пользователях, то сделайте с этой информацией хоть что-то полезное для них. А то, судя по таргетированной рекламе, обо мне в Интернете знают все вплоть до цвета трусов, но онлайн-магазины все равно при каждом визите спрашивают: "Ваш город - Нижний Урюпинск?"
То есть ВЫ за пользователей уже решили, что им смотреть, что для них приемлемо и т.д.?
Например, хотя мой родной язык - русский, я точно не хочу, заходя на условный MDN, получать результат на русском.
О да, я за это гугл ненавижу. Захожу на сайт с документацией про андроид разработку, а он мне свой кривой машинный перевод подсовывает, вместо англоязычной версии. При том что и браузер и система у меня с en-us. Есть кнопка переключения на английский, но эти нехорошие люди как то так эту функцию написали что эта настройка раз в несколько дней забывается и снова этот корявый перевод на русский язык лезет.
Мета тоже раздражает. На днях скачивал их oculus link приложение, и по умолчанию мне на финском показывало все. Видимо по причине vpn. Хорошо хоть знаю что надо в таком случае по странице искать Suomi, чтобы найти где язык переключается.
MDN - полбеды, а вот MSDN с дебильным автопереводом просто вымораживает...
Почему нет? Если у меня система и браузер настроены с английской локалью - то логично и интерфейс мне показывать на английском по умолчанию. Даже если сайт русскоязычный. Ну, если он вообще имеет англоязычную версию интерфейса, конечно.
Если для конкретного сайта хочется другую - это обычно где-нибудь в настройках самого сайта переключается. Я же не просто так локаль настроил. У меня к примеру это часть процесса погружения, помогает язык учить.
ну щаз. У меня там стоит en-us именно потому что я ХОЧУ чтобы там стоял en-us.
Не надо за меня определять "по geoip" и подсовывать мне то турецкий, то финский, то русский.
В конце концов, есть работающее решение еще со времен первых сайтов: вверху (внизу) ссылки на разные языки. Если я не понимаю японский - выберу английский, какие проблемы-то? Или воспользуюсь переводчиком...
Предположу что наилучшим решением было бы проверять, есть ли в списке языков из Accept-Language
язык, определённый по geoip. Если есть, то использовать его.
А если нет, то показать диалог "по вашему IP вы в стране, где в основном говорят на X, но ваш браузер заявляет, что вы предпочитаете язык Y. Какой вы на самом деле хотите?" С большими кнопками для выбора X и Y, выпадающим списком выбора любого доступного языка и ссылкой "как настроить анонсируемые $browsername предпочитаемые языки"
Вы отображаете английский французу в Германии
Не все так банально с отображением языковой версии. Возможно у сайта просто нет поддержки француского и немецкого. Поэтому алгоритм немного сложнее — он из всех возможных мест извлекает хоть какой-то язык, который у сайта поддерживается. IP — это одно из таких мест.
О да, порой тоже руки чесались написать статью про эту боль. Много кто использует этот антипаттерн и потом при использовании vpn или в поездках начинаешь все время переключаться обратно. Хотя браузер и так посылает системный язык. У гугла еще большая беда, несмотря на явное указания у них в настройках языка и региона, он все равно упорно переключается на язык по ip.
Возможно, мне не доводилось реализовывать похожее, но кто уже делал, в чем проблема использовать значения языка из того что браузер в хедере посылает, а если не получилось так определить, то скидывать на дефолтный (английский если международная аудитория и локальный, если ресурс для определенной страны)?
А еще жутко бесит когда язык намертво прибит к стране доставки.
Хороший пример это Zara. Два дропдауна, для страны и для языка. Причем английский есть везде.
Плохой пример это Cos. Если я заказываю что-то в Италию, то вообще не факт, что я говорю по-итальянски. Может это подарок, может я турист, может я на зимовке. В общем такое. Причем это же ничего не стоит, английский вариант сайта у них тоже есть, но мы вам его не покажем, потому что у вас доставка не туда)
Надо же. Мы так делаем уже лет... и не вспомню, сколько. 15, 20? Примерно всегда, в общем. Знал бы, что это такая горячая тема, давно бы поделился.
Особенно это касается одной всем известной страны из трёх цифр, где государственным языком в интернете пользуется меньшинство.
Дело не только в удобстве пользователей. Часто работаю через голландский ВПН и включаю Твич на фоне.
Слушаю огромное количество голландской рекламы(хоть и довольно однообразной, в основном армия и Макдональдс). На голландском языке, само собой.
Интересно, рекламодатели в курсе, на что уходит их бюджет?
IP дата-центра, Accept-Language: ru-RU, включен стрим на русском. Не, чувак, нас не проведёшь, вербуйся в армию Нидерландов!
Ладно браузер, там хоть что-то в конце концов можно сделать. А вот с мобильными приложениями...
Андроид с английским интерфейсом. Приложение, которое я хотел бы видеть на русском. Русский язык у него совершенно точно родной. Но нет, оно мне показывается на английском с вкраплениями русских фраз, там где не нашлось английского. Переключателя языка в интерфейсе нет. "Мы лучше тебя знаем что тебе нужно, жри что дают"
На андроиде можно настроить дефолный язык для каждого приложения в системных настройках: настройки -> приложения -> выбрать приложение в списке -> язык
В какой версии андроида это доступно? У меня сейчас в Android 14 такого нет.
У меня 13. Судя по Гуглу, начиная с 13 и появилось https://developer.android.com/guide/topics/resources/app-languages
Но, похоже, поддержка этой фичи определяется разработчиком. Я не нашел у себя приложений, которые так не умеют, поэтому предположил, что работает всегда
Можно, если это поддерживает собственно приложение, а это далеко не всегда так; более того, даже если поддерживает -- не всегда работает. Пример: Belka Car
К сожалению, не для каждого, а только для тех, кто это поддерживает
Ой, полез проверить - и сработало, правда не с первого раза. Но я совершенно точно для этого приложения это уже пытался
Больше всего бесят разработчики, которые поудаляли русский язык со своих сайтов.
Во первых, не только в России говорят на русском.
Во вторых, пользователи из России скорее всего и не зайдут на ваш сайт. А портите жизнь вы именно местным русскоговорящим, которые ничего плохого вам не сделали.
Ещё весело, когда выбираешь русский язык, а тебя перекидывает на Российский поддомен и надпись "мы не работаем в вашем регионе".
Я уже молчу про Aliexpress. В поиске на русском языке высвечивается именно Российская версия Ali. Если перейти на неё, то иногда можно словить софтлок, после чего тебя не пустит назад на европейскую никаким образом.
А ведь есть еще и даты, и их в том же гугле вообще никак не поменять. Гуглите новости, находясь в Таиланде? Добро пожаловать в 2568 год!
Передаю привет разработчику из Яндекса, который на https://yandex.ru/pogoda из Москвы отправляет меня в Нидерланды по IP моего VPN. А потом я могу 1-5-10-50 раз переключаться обратно на Москву, но Frontend разработчик через 0.01 сек своим оптимизированным кодом отправляет меня обратно в Нидерланды быстрее скорости света.
Я им об этом писал, и, что удивительно, даже получил ответ:
Заходите на https://yandex.ru/tune и поменяйте там ваше местоположение
В целом даже работает, хотя если открывать в приватном окне - это приходится делать каждый раз, но хоть какое-то решение.
Какая же это боль. Особенно принудительные редиректы на национальные сайты. Захожу на сайт en или ru международной компании, ой, вы сейчас в Азии/Латинской Америке? Вот вам принудительный редирект, при попытке перейти обратно опять редирект. Сейчас уже меньше этим грешат, но все равно очень много международных копаний который так делают.
И тут внезапно Хабр. Без логина, простым habr.com/ru/
habr.com/en/
я не могу переключить язык, потому что меня молча редиректит на "угадываемую" локаль. Обязательно надо ткнуть в не особо интуитивно-понятную иконку с глазиком, найти там "настройки ленты / настройки интерфейса" и только тогда язык соизволит переключиться.
Что хуже, без шаманства с настройкой, даже по полной ссылке на статью, содержащей /ru/
, меня перекинет на /en/
. Что может быть более явным указанием желания видеть контент на определённом языке, чем указание его в URL, зачем этот редирект.
Ориентироваться на языки ОС и браузера тоже не всегда правильно. Бесит, когда русские сайты грузят английскую версию сайта из-за того, что у меня английские ОС и браузер...
Не пытайтесь угадать мой язык