混合/未知语言的Content-Language标头和lang属性值

时间:2013-02-19 20:02:58

标签: html5 internationalization http-headers

我们有一个主要是英语的Intranet应用程序,但提供各种未指定语言的内容片段。

Chrome用于检测外国内容并提供为我们翻译的内容:如果我们有很多外国内容,它可以翻译整个页面;如果我们只有一点外国内容,则用户可以选择文本并使用“翻译为英语”上下文菜单。这两个选项目前都被打破了(显然)Chrome现在接受Content-Language标题作为福音,并禁用翻译上下文菜单。

我们的服务器会发出响应标头,包括:

Content-Language: en-US

这是正确的,因为UI全是英文。但是,我们需要一些方法来标记页面中可能不是英语的区域。例如评论区域。

我们可以使用哪个lang值将网页的某个部分标记为“可能不是英文”,而不确切知道它是什么语言?

<div lang="??">
  <p>...customer comments...</p>
</div>

2 个答案:

答案 0 :(得分:1)

通过HTML5 CR,声明某些内容使用未知语言的方法是使用带有空字符串的lang属性作为其值,即lang=""

Chrome是否认识到这是另一个问题。一般来说,机器翻译的质量很低,因此禁用它通常是一件好事。

答案 1 :(得分:0)

如果我没记错(来自Multilingual Web Workshop),则不应再使用Content-Language。相反,您应该使用属性langxml:lang

考虑到这一点,答案非常简单:对你知道的事情使用lang属性肯定是英文的,不要忽视其他事情。
这当然意味着您不能将lang标记用于全局范围(即<html lang="en">),但我实在无法帮助它。

顺便说一句。使用适当的lang标记动态生成的部分是可能的(尽管不容易)。例如,可以考虑强制用户从列表中选择有效语言,或使用某些库从文本中检测语言。在这种情况下,你会在渲染时知道语言,我认为这已经足够了。