注:此网页的中文译本不及原英文本新。

不同语系的 Debian 站点


显而易见,世界上并不是所有的人都使用同一种语言。随着互联网的发展,网页并存多种语言的情况日趋普遍。因而诞生了一个标准,叫做内容协商 (content negotiation),它允许人们设置他们希望接收到的文档所使用的语言。实际下载的版本是经过您的浏览器和服务器 之间的协商而确定的;您的浏览器发送它的语言偏好,而服务器 根据您的语言偏好来决定发送哪个版本,以及哪些版本的文档 是可用的。

值得注意的是当选择了一个不同语言时 (从某个页面下方所列出的可用翻译的列表中) 只有当前页面被翻译成相应语言。它 没有 改变默认语言。如果您点击了一个到其它页面的链接,它将再一次显示成原来的语言。要彻底改变您所使用的 默认 语言,您需要在您的浏览器配置中修改语言设置,下面将会作具体的解释。


如果 Debian 网页显示了错误的语言该怎么办

从 Debian 网站上接收到语言错误的文档,最常见的原因是因为您的浏览器设置不正确。请参考 如何 设置语言 来解决您的问题。

第二种可能是因为您的缓存设置错误或有问题。因为越来越多的网络服务供应商 (ISP) 认为使用缓存可以减少网络的流量,所以这个问题越来越严重。您可以参考网站缓存注意 事项,即使您认为您没有使用缓存。

第三种可能就是 Debian 网站 的问题。不过,在这几年来我们所接收到的语言错误的报告中,只有极少数真的是我们的问题。所以 我们建议您在跟我们联络之前,先确定是不是前面所提到的两个问题。如果您发现 Debian 网站 可以运作,但是有一个镜像站点 不行,请您向我们报告,我们会与镜像点的维护者联系。

在修复了问题之后,我们建议您要把本地的缓存数据清除一下,包含磁盘 里与内存内的缓存。我们也建议您使用 lynx 来测试。这是我们发现唯一百分之百遵循“内容协商”机制的浏览器。

代理服务器的潜在问题

代理 (proxy) 服务器基本上是一个没有自己内容的网站服务器。它们介于用户和真正的网络服务器 之间。它们抓取您所需要的网页,然后将网页转给您,但同时保存一个拷贝作为缓存,以便以后取用。这可以让很多用户要看同一个网页时,网络带宽的压力大大减少。

大多数时候,这是个好主意,但是如果缓存出问题的话,这个办法就不行了。特别是有些较旧的代理服务器不支持内容协商 机制时。这会导致它们只存放其中一种语言的网页缓存 ,而不会理会后续即使是不同语言的要求。唯一的解决方式就是更新或改换缓存软件。

在过去,人们只在他们的浏览器被自己设置过后才使用一个代理。但是现在就不是这样了。您的网络服务供应商可能会强 迫将所有的HTTP 连线要求重定向到一个透明的代理服务器 。如果这个代理服务器无法正确处理内容协商, 用户可能就会接收到错误语言的缓存网页。这时唯一的办法就是向您的 ISP 供应商提意见,要求他们升级 或更新他们的缓存软件。


怎样在浏览器里设置语言

您可以将语言设置成所有您使用的语言,并依您的喜好排序。通常最好能将英文 ('en') 列为一个备份语言 (放在最后一个) 因为原来的 Debian 网站是使用英文,而不是所有的文档都有翻译成您所使用的语言。

例如,如果您的母语是中文,您可能希望将您的首选语言设置成中文 (语言代码为 'zh'),然后第二个设置成英文 ( 语言代码为 'en')。

您可以参考 如何在特定浏览器中设置语言

如您所见,大多数浏览器通过一些用户界面向您隐藏了定义偏好语系所需的细节。如果并非如此,请注意前面段落中一个重要的细节: 如果您要设置的一 组像 'zh, en' 这样的语系还没有定义成一种偏好,而且它们有着相同的优先级,那么服务器可能会忽略它们之间的顺序。如果您想指定有效的语系,您必须使用介于 0 和 1 之 间的、数值大小代表选用顺序的浮点数优先级 (quality values)。在上面这种情况下您很可能要这样设置 'zh; q=1.0, en; q=0.5'。

您在使用语言的子类别时需要特别注意您设置的方式。如果您 设置了 'zh-CN, en' 的话,您所得到的结果可能和您预期的结果会有很大的不同。

除非您有更好的理由,否则我们强烈建议您不要使用加上国家扩展 码的语言设置。如果您确实要 使用,也请确定您还引入了不含国家扩展码的语言 设置。

举个例子,一个收到某个用 'zh-CN, en' 作为页面语言偏好请求的服务器,先处理的不是中文 ('zh') 而是英文。只有当这个页 面存在一个和 zh-CN 国家扩展码相应的版本时,它才会在处理英文之前优先处理中文。

在这种情况下,您应该将您的浏览器设为 'zh-CN, zh, en',或者 'zh, en'。然而还是会有意外情况,例如,一个服务器可能在 收到 'zh' 请求后返回 'zh-TW' 的结果。

您可以参考 Apache 内容协商 文档 来看看关于语言设置的信息 。

在浏览器里设置显示语言

要在您的浏览器中设置默认语言,您必须 设置一个变量发送给站点服务器。这跟您使用的浏览器有关。

Mozilla / Netscape 4.x 及更高的版本
     Edit -> Preferences -> Navigator -> Languages
注意: Netscape 4.x 版您最好是从它所列出的支持语言列表中点选。有些用户回报说有问题,结果是因为他们用自己打字输入的方式 设置语言。
Mozilla Firefox
3.0 及更高的版本:
Linux:
     编辑 -> 首选项 -> 内容 -> 常规 -> 语言 -> 选择...
Windows:
     工具 -> 首选项 -> 内容 -> 常规 -> 语言 -> 选择...

1.5 及更高的版本:
Linux:
     编辑 -> 首选项 -> 高级 -> 常规 -> 编辑语言
Windows:
     工具 -> 首选项 -> 高级 -> 常规 -> 编辑语言

0.9 及更高的版本:
Linux:
     编辑 -> 首选项 -> 常规 -> 语言
Windows:
     工具 -> 首选项 -> 常规 -> 语言
对于更老的版本您必须打开 about:config 页面,然后修改 intl.accept_languages 的键值。
Iceweasel
    编辑 -> 偏好设定 -> 内容 -> 语言 -> 选择
 
Internet Explorer
Windows:
     Tools 或 View 或 Extras -> Internet Options -> (General) Languages
Mac OS:
     Edit -> Preferences -> Web Browser -> Language/Fonts
Pocket Internet Explorer
     在注册表 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International\
     中创建一个键值 AcceptLanguage 并赋值
     zh; q=1.0; en; q=0.5 (不含括号)。
Opera
大部分的版本:
     File -> Preferences -> Languages
Linux/*BSD 5.x 及 6.x 版:
     File -> Preferences -> Document -> Languages
Nokia 770 Web Browser: 编辑 /home/user/.opera/opera.ini 文件,将下列行添加到 [Adv User Perfs] 段落中:
     HTTP Accept Language=zh;q=1.0,en;q=0.5
Galeon
     Settings -> Preferences -> Rendering -> Languages
Epiphany
     编辑 -> 设置 -> 语言 -> 语言
Konqueror
如果您只使用一种语言,那很简单,只要从 KDE 控制中心选定即可。
如果您要使用多种语言集,您必须修改 ~/.kde/share/config/kio_httprc这个文件,加入以下这一行 (请自行变换成自己要设置的语言):
     Language=zh,en
记得要让这些改变生效,要重新启动 KDE。
lynx
您可以编辑 .lynxrc 文件中的 preferred_language 变数,或者在使用 lynx 时使用 'O' 命令。

例如,在 .lynxrc 中加入这一行:

     preferred_language=zh; q=1.0, en; q=0.5
W3 (在 Emacs 里的浏览器)
(setq url-mime-language-string  "preferred_language=zh; q=1.0, en; q=0.5")
或者是使用 custom 软件包 (假设 URL 版本是 p4.0pre.14):
Hypermedia -> URL -> Mime -> Mime Language String...
iCab
     Edit -> Preferences -> Browser -> Fonts,Languages
W3M
     Options (o) -> Other Behavior -> Accept-Language
Safari
Safari 是通过 Mac OS X 系统的设置来决定您选用的语言的:
     System preferences -> International -> Language
ELinks
您可以在
     Setup -> Language
设置默认的用户界面语言;这个设置 也会影响从网站上取得的文件语言版本。您可以通过对 HTTP 可接受语言变数做进一步的设置来改变这样的行为:
     Setup -> Options manager -> Protocols -> HTTP
Netscape 3.x
在 Netscape app-defaults 文件 或 ~/.Xresources 文件中加上这一行:
     *httpAcceptLanguage: [preferred_language string]
IBrowse
依次打开PerferencesSettingsNetwork页面。在 Accept language的下面可能默认显示一个*。如果您点击Locale 按钮它将添加您偏好的语系。否则你可以手工添加它。之后,点击OK完成。
Voyager
打开SettingsLanguages页面。您可以手工添加或者点击Get from locale。点击OK结束设置。
Chromium
Customize and control Chromium -> Options -> Under the Hood -> Web content -> Change font and language settings -> Languages

如果您有一些其他上面所未列出的浏览器设置方式的信息 ,请送到 debian-www@lists.debian.org