我们有一个主要是英语的Intranet应用程序,但提供各种未指定语言的内容片段。
Chrome用于检测外国内容并提供为我们翻译的内容:如果我们有很多外国内容,它可以翻译整个页面;如果我们只有一点外国内容,则用户可以选择文本并使用“翻译为英语”上下文菜单。这两个选项目前都被打破了(显然)Chrome现在接受Content-Language
标题作为福音,并禁用翻译上下文菜单。
我们的服务器会发出响应标头,包括:
Content-Language: en-US
这是正确的,因为UI全是英文。但是,我们需要一些方法来标记页面中可能不是英语的区域。例如评论区域。
我们可以使用哪个lang
值将网页的某个部分标记为“可能不是英文”,而不确切知道它是什么语言?
<div lang="??">
<p>...customer comments...</p>
</div>
答案 0 :(得分:1)
通过HTML5 CR,声明某些内容使用未知语言的方法是使用带有空字符串的lang
属性作为其值,即lang=""
。
Chrome是否认识到这是另一个问题。一般来说,机器翻译的质量很低,因此禁用它通常是一件好事。
答案 1 :(得分:0)
如果我没记错(来自Multilingual Web Workshop),则不应再使用Content-Language
。相反,您应该使用属性lang
和xml:lang
。
考虑到这一点,答案非常简单:对你知道的事情使用lang
属性肯定是英文的,不要忽视其他事情。
这当然意味着您不能将lang
标记用于全局范围(即<html lang="en">
),但我实在无法帮助它。
顺便说一句。使用适当的lang
标记动态生成的部分是可能的(尽管不容易)。例如,可以考虑强制用户从列表中选择有效语言,或使用某些库从文本中检测语言。在这种情况下,你会在渲染时知道语言,我认为这已经足够了。