Как получить настройки языка Firefox? (ДЕЙСТВИТЕЛЬНО)

Я знаю, что этот вопрос был ответил до, но приведенный ответ - не полная история:

Я зашел в Firefox Options- > Content и удалил все языки, кроме немецкого/немецкого, и navigator.language не изменился - он все еще en-GB (я в Великобритании).

Мне сказали, если я получу немецкий Firefox INSTALL, это сработает, но мне не нужно это делать, правильно?

В строке useragent по-прежнему имеется en-GB; но язык приема на HTTP-заголовках IS установлен правильно. Так что это, кажется, ошибка в Firefox, я потратил немного времени на прохождение через их bugzilla, но я не могу видеть, что эта точная ошибка зарегистрирована, хотя для меня это выглядит довольно большим недосмотром?

Ответ 1

Я бы рекомендовал использовать надстройку Firefox для этой задачи. Простой локальный коммутатор, Locale Switcher или Quick Locale Switcher и т.д. (* Внимание, некоторые из этих надстроек могут содержать рекламные объявления или могут не работать, если вы только что обновили firefox).

* Другое решение - загрузить другую старую версию firefox с использованием языка/локали. (Внимание). Вам необходимо установить и установить его в другой папке, чтобы не перезаписывать существующую версию. Загрузить здесь Я использую firefox 28 на испанском языке. Я отключил обновления, и я отказался использовать его в качестве браузера по умолчанию. При этом вы должны запускать только одну версию firefox, если вы это сделаете.

Ответ 2

Как navigator.language, так и заголовок User-Agent HTTP используют значение предпочтения "general.useragent.locale", которое жестко закодировано в intl.properties для локали загруженной вами сборки Firefox: http://mxr.mozilla.org/mozilla-central/source/toolkit/locales/en-US/chrome/global/intl.properties#8

Или для сборки en-GB: http://hg.mozilla.org/l10n-central/en-GB/file/88dd673c01f1/toolkit/chrome/global/intl.properties#l8

Если вы хотите изменить его для своей сборки, просто загрузите его: config, найдите general.useragent.locale, дважды щелкните его и измените значение.

Ответ 3

Я бы предположил, что navigator.language возвращает его язык интерфейса (я предполагаю, что это английский язык на английском языке), а не тот, который ему нужен. В строке User-agent также сообщается, какая версия Firefox была загружена.

Accept-language - это то, что должен проверить сервер назначения.

Я считаю, что это поведение его вполне корректное (предполагая, что его интерфейс (меню и т.д.) действительно находится на английском языке).

Ответ 4

Если вы хотите значение Accept-Language, вы не можете получить, если используете JavaScript на стороне клиента. Вам нужно будет получить его с вашего сервера.

Если вы действительно хотите это значение на клиентском JavaScript, прочитайте его на сервере и запишите его клиенту:

<script type="text/javascript">
// setting the accept language HTTP header value
// in client-side JavaScript from PHP
var acceptLanguage = '<?php echo $_SERVER["HTTP_ACCEPT_LANGUAGE"]; ?>';
</script>

Ответ 5

в firefore, about: config, измените значение "intl.accept_languages" на требуемую локаль, скажем, de-DE.