我们有一个以英语为主的intranet应用程序,但它以各种未指定的语言提供内容片段。
Chrome曾经为我们检测外国内容并提供翻译:如果我们有大量的外国内容,它会提供整个页面的翻译;如果我们只有少量的外国内容,用户就能够选择文本并使用“翻译到英语”上下文菜单。这两个选项目前都被打破,因为(显然) Chrome现在接受Content-Language
标题作为福音,并禁用翻译上下文菜单。
我们的服务器提供响应头,包括:
Content-Language: en-US
这是正确的,因为UI都是英语的。但是,我们需要一些方法来标记页面的内容可能不是英文的区域。例如,评论领域。
我们可以使用什么lang
值来标记一页中的“可能不是英语”的部分,而不知道它到底是哪种语言?
<div lang="??">
<p>...customer comments...</p>
</div>
发布于 2013-02-19 21:18:03
通过HTML5 CR,声明某些内容使用未知语言的方法是使用lang
属性,其值为空字符串,即lang=""
。
Chrome是否认识到这是一个不同的问题。一般来说,机器翻译的质量很低,所以禁用机器翻译通常是一件好事。
发布于 2013-02-19 20:39:28
如果我没有记错(来自多语种网络研讨会),Content-Language
就不应该再使用了。相反,您应该使用属性lang
和xml:lang
。
有了这一点,答案是非常简单的:对于您所知道的事情,一定要使用lang
属性,这肯定是用英语表示的,而其他内容则不受影响。
当然,这意味着您不能将lang
标记用于全局范围(即<html lang="en">
),但我真的无法控制它。
顺便说一下。用适当的lang
标记动态生成的部分是可能的(虽然不容易)。例如,可以考虑强迫用户从列表中选择有效的语言,或者使用一些库来检测文本中的语言。在这种情况下,您可以在呈现时了解语言,我认为这就足够了。
https://stackoverflow.com/questions/14966317
复制相似问题