1

Как определить, какие устройства пользователь предпочитает читать?Обнаружение предпочтительных устройств пользователя

Я имею в виду градусов Цельсия против Фаренгейта, метр против миль и т.д.

я могу использовать сторонние сервисы, как http://freegeoip.net/json/, чтобы получить IP-адрес, код страны и т.д. Я мог бы также использовать navigator.language в браузере, чтобы иметь намек на язык, но я не уверен, есть ли безопасный способ убедиться, что я представляю результаты в правильных единицах для пользователя.

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

+1

Спрашивать их - единственный верный способ ответить на ваш вопрос. Все остальное - это предположение, что в лучшем случае правильное время от времени, но будет некорректно некоторое время. Например, если вы предпочитаете метрику и посещаете США, ваша оценка JS неверна. –

+0

@sethflowers, поэтому я задаюсь вопросом, есть ли способ с помощью JavaScript, чтобы точно определить, какие предпочтения у пользователя относительно единиц измерения. – Rikard

+0

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

ответ

0

Нет, это не в ОС Windows или другой ОС я знаю. Android только начал предлагать ICU (или 4J или C) через свой API с последней версией «Nougat». ICU и Unicode CLDR знают несколько единиц, но единичная система в настоящий момент также не отображается.

Если вы называете API как http://freegeoip.net/json/, название страны или код позволят вам решить, какие страны в целом приняли систему Metric, в отличие от других (только 3, включая США), но есть много стран, например. Британия, где некоторые единицы также используются из Имперской системы. Уличные знаки показывают расстояние в милях, в то время как вы обычно видите, что бензоколонка предлагает топливо за литр, а не галлон, как в США.