Как получить настройку языка Firefox? (ДЕЙСТВИТЕЛЬНО) - PullRequest
23 голосов
/ 30 июля 2009

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

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

Мне сказали, что если я получу немецкий Firefox, УСТАНОВИТ, что он будет работать, но мне не нужно этого делать, верно?

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

Ответы [ 5 ]

15 голосов
/ 30 июля 2009

И navigator.language, и HTTP-заголовок User-Agent используют значение предпочтения "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

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

9 голосов
/ 13 марта 2013

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

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

2 голосов
/ 30 июля 2009

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

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

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

0 голосов
/ 05 января 2011

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

0 голосов
/ 30 июля 2009

Если вам нужно значение 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>
...