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

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

我被告知如果我得到德国火狐安装它会起作用,但我不应该这样做,对吗?

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

有帮助吗?

解决方案

我建议使用Firefox附加组件完成此任务。 简单区域切换器 Locale Switcher Quick Locale Switcher 等(*注意某些附加组件可能包含广告软件或可能无法正常工作如果你刚刚更新了firefox)。

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

其他提示

navigator.language和HTTP User-Agent标头都使用首选项“general.useragent.locale”的值,该值在intl.properties中硬编码为您下载的Firefox构建的区域设置: http:// mxr .mozilla.org / Mozilla的中央/源极/工具箱/语言环境/ EN-US /铬/全球/ intl.properties#8

或者您的en-GB版本: http:// hg .mozilla.org / L10N中央/ EN-GB /文件/ 88dd673c01f1 /工具箱/铬/全球/ intl.properties#L8

如果您想为构建更改它,只需加载about:config,找到general.useragent.locale,双击它,然后更改值。

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

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

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

如果您需要 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 

如果您需要 Accept-Language 值,则无法检索是否使用客户端JavaScript。你必须从服务器上获取它。

如果你真的想在客户端JavaScript中使用这个值,那么在服务器上读取它并将其写回客户端:

<*>SERVER["HTTP_ACCEPT_LANGUAGE"]; ?>'; </script>

在firefore中,about:config,将“intl.accept_languages”的值修改为你需要的语言环境,让我们说de-DE会这样做。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top