Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.08.2022, 18:41
Интересующийся
Отправить личное сообщение для vadval15 Посмотреть профиль Найти все сообщения от vadval15
 
Регистрация: 13.04.2013
Сообщений: 13

Как определить текущий язык браузера
Для определения текущего языка браузера (Firefox) было использовано свойство language объекта navigator (https://qna.habr.com/q/338809):
var language = window.navigator ? (window.navigator.language ||
                  window.navigator.systemLanguage ||
                  window.navigator.userLanguage) : "ru";
language = language.substr(0, 2).toLowerCase();

К сожалению, в приведенном случае при всех установках языка браузера им выдавалось лишь одно значение - "ru", а аналогичные ему свойства (systemLanguage, userLanguage, browserLanguage) вообще отсутствовали. Может быть, имеется какой-либо иной, более действенный способ определения текущего языка браузера? Буду признателен за любой совет по данному вопросу.
Ответить с цитированием
  #2 (permalink)  
Старый 04.08.2022, 19:17
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

У меня прекрасно меняется navigator.language при смене. Только браузер надо перегрузить чтоб применилось.

На всякий случай уточню: ты ведь хочешь узнать язык интерфейса браузера, а не текущую раскладку клавиатуры, верно?
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 04.08.2022, 19:24
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,726

А что не так с navigator.language?

Только что проверил в Chrome v104.0.5112.79 и Firefox v103.0.1 - работает как часы, последний даже перезагружать не нужно.
Ответить с цитированием
  #4 (permalink)  
Старый 05.08.2022, 11:06
Интересующийся
Отправить личное сообщение для vadval15 Посмотреть профиль Найти все сообщения от vadval15
 
Регистрация: 13.04.2013
Сообщений: 13

Спасибо всем за ответы. Приношу свои извинения за неоднозначную формулировку вопроса, поскольку под текущим языком браузера подразумевалась именно раскладка клавиатуры. Во всяком случае, теперь стало очевидным, для каких целей используется свойство language. Осталась лишь неясной возможность определения раскладки.
Ответить с цитированием
  #5 (permalink)  
Старый 05.08.2022, 12:31
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

vadval15, ну тут всё просто - определить раскладку клавиатуры средствами js невозможно. Почему? Потому что у раскладок клавиатуры на самом нет ни названий ни привязки к конкретному языку. Раскладка может быть абсолютно любой. Да, "по умолчанию", для английского языка используется "qwerty", а для русского "йцукен", но есть как и множество других "стандартизированных" вариантов, так и возможность использовать произвольный набор и порядок символов, индивидуально настроенный.

Тебе следует подумать об иных способах решения стоящей перед тобой задачи.
__________________
29375, 35

Последний раз редактировалось Aetae, 05.08.2022 в 12:36.
Ответить с цитированием
  #6 (permalink)  
Старый 06.08.2022, 18:33
Интересующийся
Отправить личное сообщение для vadval15 Посмотреть профиль Найти все сообщения от vadval15
 
Регистрация: 13.04.2013
Сообщений: 13

Благодарю Вас за обстоятельный ответ. И хотя, как показал дальнейший поиск, явное определение раскладки клавиатуры в JavaScript действительно отсутствует, тем не менее иногда её можно установить косвенно при анализе кода набранного символа в ходе обработки события keypress (http://webdiz.com.ua/sobytiya-klavia...down-keypress/, https://qna.habr.com/q/449920), что вполне достаточно для решения многих задач.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как определить предел желаемого (сколько может выдержать браузер)) al456 Элементы интерфейса 4 03.02.2013 23:20
как определить размер видимой области мобильного браузера ? mitiya Общие вопросы Javascript 5 16.10.2012 18:31
Как запретить применение css при изменении окна браузера east (X)HTML/CSS 7 12.10.2012 21:23
Как определить была ли ссылка посещена Почемучкин Элементы интерфейса 12 10.09.2012 10:54
как определить шрифты scuter Общие вопросы Javascript 9 19.05.2008 14:32