Бесплатная jqGrid 4.8.0 - Автоматическая установка локали в зависимости от пользовательской среды

Есть ли способ автоматически установить локаль пользователя на основе пользовательских настроек ОС Windows/Linux?

Сегодня мне нужно явно включить соответствующий js.

Спасибо,


person Tal    schedule 24.04.2015    source источник


Ответы (1)


Существует много способов определить язык пользователя автоматически, но я не знаю идеального решения. Все зависит от ваших конкретных требований. Например, можно использовать navigator.language || navigator.browserLanguage. Например, вы получите строку типа "en-US". Старая демонстрация для запрос функции демонстрирует использование navigator.language || navigator.browserLanguage.

Пользователь по-прежнему может иметь другие языковые настройки в настройках веб-браузера:

введите здесь описание изображения

поэтому веб-браузер будет включать заголовок Accept-Language в HTTP-запросы к серверу:

Accept-Language: de,en-GB;q=0.8,en;q=0.6,en-US;q=0.4,ru;q=0.2,ja;q=0.2

Настройки могут отличаться в разных веб-браузерах, которые использует пользователь.

введите здесь описание изображения

Поэтому я рекомендую вам предоставить пользователю некоторую возможность (например, элемент <select>) сделать выбор вручную.

После обнаружения языка вам необходимо проверить, загружен ли уже соответствующий язык. Вы можете проверить, определено ли уже соответствующее языковое свойство в $.jgrid.locales (if ($.jgrid.locales[locale] !== undefined)). Если он не определен, вам необходимо динамически загрузить соответствующий файл JavaScript. Вы можете дополнительно протестировать значение $.jgrid.defaults.locale. Значение будет установлено в каждом файле локали. Таким образом, $.jgrid.defaults.locale дает вам информацию о последнем загруженном файле локали и о локали по умолчанию бесплатного jqGrid. Можно по-прежнему явно указывать locale при создании сетки. См. статью дополнительную информацию.

person Oleg    schedule 24.04.2015