Определить язык Windows того, кто зашел на сайт через Google Chrome

Enigma

Client
Регистрация
16.06.2017
Сообщения
187
Благодарностей
31
Баллы
28
Внимание: речь не про пользовательский интерфейс браузера, а именно про язык операционной системы!

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

Сейчас же все изменилось: Хром запретил Adobe Flash по дефолту, соответственно, через Flash язык системы уже не определить. Слышал, однако, что антифрод-системы успешно используют различные методы определения не только языка, но и других "отпечатков", вследствие чего тоже выявляют подозрительных клиентов.

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

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 519
Благодарностей
991
Баллы
113
Чел из штатов на Кристмас поехал в ЕУ, ты его нах сразу забанишь? :-)
 

Enigma

Client
Регистрация
16.06.2017
Сообщения
187
Благодарностей
31
Баллы
28
Ну, это особый случай ;-) Сути вопроса это не меняет.
 

uf0log

Client
Регистрация
29.05.2016
Сообщения
78
Благодарностей
19
Баллы
8

Enigma

Client
Регистрация
16.06.2017
Сообщения
187
Благодарностей
31
Баллы
28
Похоже, фингерпринт определяет все что угодно, но только не язык ОС :bw:
 

irinainina

Новичок
Регистрация
27.12.2017
Сообщения
1
Благодарностей
1
Баллы
1
Здравствуйте.
Прямым путём здесь не получится.
Возможные варианты.
1.
var language = window.navigator.userLanguage || window.navigator.language;
console.log(language)
Возвращает язык операционной системы только для IE, для остальных браузеров вернёт язык браузера. Не подходит.
2.
var d=new Date(Date.UTC(2017,11,27,3,0,0));
var dateFormat={weekday:"long"};
var weekday = d.toLocaleDateString("i-default",dateFormat);
console.log(weekday)
Вернёт день недели (среда) в языко-зависимом формате. Язык представления даты определяется по языку операционной системы для всех браузеров, кроме Хрома. Тоже не вариант.
3.
Не в тему языка, но о том кто есть кто. Встроенная в браузер геолокация. Достаточно точная, но требует разрешения пользователя на определение его местонахождения.
Результат https://js3021.github.io/
4.
var timeZone = new Date().getTimezoneOffset()/60;
console.log(timeZone);
Совсем не про языки, но часовой пояс тоже неплохо для определения местонахождения пользователя. Мало кто будет заходя на сайт переводить часы на компьютере и разрешение пользователя на определение его часового пояса не требуется.
5.
Самое перспективное решение будет таким.
JavaScript умеет определять установленные в системе шрифты http://www.lalit.org/lab/javascript-css-font-detect/
Можно попробовать сравнить языковые пакеты Windows для разных языков, выбрать в них уникальные шрифты и по их наличию или отсутствию делать вывод о языке операционной системы.
 
Последнее редактирование:
  • Спасибо
Реакции: Enigma

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)