25

我知道这个问题之前已经回答过,但给出的答案并不是完整的故事:

我进入了 Firefox 的 Options->Content 并删除了除德语/德语以外的所有语言,并且 navigator.language 没有改变 - 它仍然是 en-GB(我在英国)。

有人告诉我,如果我得到德国的 Firefox INSTALL 它将工作,但我不应该这样做,对吧?

useragent 字符串也仍然包含 en-GB;但是 HTTP 标头上的接受语言设置正确。所以这似乎是 Firefox 中的一个错误,我花了一些时间浏览他们的 bugzilla,但我看不到这个确切的错误记录,尽管对我来说这似乎是一个很大的疏忽?

4

5 回答 5

15

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,双击它,然后更改值。

于 2009-07-30T17:40:07.937 回答
9

我建议为此任务使用 Firefox 插件。Simple Locale SwitcherLocale SwitcherQuick Locale Switcher等(* 注意,如果您刚刚更新了 firefox,某些附加组件可能包含广告软件或可能无法正常工作)。

*另一种解决方案是使用语言/区域设置下载不同的旧 Firefox 版本。(注意)您需要将其安装在不同的文件夹中,这样您就不会覆盖现有版本。在这里下载我使用的是西班牙语版的 firefox 28。我禁用了更新,并拒绝将其用作我的默认浏览器。如果您这样做,则只能同时运行一个 Firefox 版本。

于 2013-03-12T22:05:43.487 回答
2

我会假设 navigator.language 返回它的界面语言(我假设是 GB 英语),而不是它想要的文档。用户代理字符串也报告下载了哪个版本的 firefox。

接受语言是目标服务器应检查的内容。

我认为他的这种行为非常正确(假设它的界面(菜单等)确实是GB英语)。

于 2009-07-30T11:50:17.900 回答
2

在firefore,about:config中,将“intl.accept_languages”的值修改为您所需的语言环境,假设de-DE就可以了。

于 2011-01-05T06:02:30.233 回答
0

如果您想要该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>
于 2009-07-30T16:52:08.097 回答