新的Google Chrome自动翻译功能在我们的一个应用程序中的一页上跳了起来。每当我们导航到该特定页面时,Chrome就会告诉我们该页面为丹麦语,并提供翻译服务。该页面是英语的,就像我们应用程序中的其他页面一样。此特定页面是内部测试页面,其中包含几十个带有英文标签的表单字段。我不知道为什么Chrome认为此页面是丹麦语。
是否有人对这种语言检测功能的工作方式以及我如何确定导致Chrome认为该页面为丹麦语的内容有见解?
新的Google Chrome自动翻译功能在我们的一个应用程序中的一页上跳了起来。每当我们导航到该特定页面时,Chrome就会告诉我们该页面为丹麦语,并提供翻译服务。该页面是英语的,就像我们应用程序中的其他页面一样。此特定页面是内部测试页面,其中包含几十个带有英文标签的表单字段。我不知道为什么Chrome认为此页面是丹麦语。
是否有人对这种语言检测功能的工作方式以及我如何确定导致Chrome认为该页面为丹麦语的内容有见解?
Answers:
更新:根据谷歌
我们不使用任何代码级语言信息,例如lang属性。
他们建议您使站点的语言显而易见。使用以下内容似乎有帮助,尽管Content-Language
已弃用,但Google表示忽略lang
<html lang="en" xml:lang="en" xmlns= "http://www.w3.org/1999/xhtml">
<meta charset="UTF-8">
<meta name="google" content="notranslate">
<meta http-equiv="Content-Language" content="en">
如果这样不起作用,您总是可以在隐藏的div中放置一堆文本(例如,“关于”页面)。这可能对SEO也有帮助。
编辑(和更多信息)
OP正在询问有关Chrome的问题,因此Google的建议已在上方发布。对于其他浏览器,通常有三种方法可以实现此目的:
W3C建议:使用html标签中的lang
和/或xml:lang
属性:
<html lang="en" xml:lang="en" xmlns= "http://www.w3.org/1999/xhtml">
更新:虽然谷歌的建议可能现在仍然对Chrome有所帮助,但以前不推荐使用Google规范。:(meta http-equiv
如上所述):
<meta http-equiv="Content-Language" content="en">
使用HTTP标头(基于跨浏览器识别测试不建议使用):
HTTP/1.1 200 OK Date: Wed, 05 Nov 2003 10:46:04 GMT Content-Type: text/html; charset=iso-8859-1 Content-Language: en
完全退出Chrome,然后重新启动以确保检测到更改。Chrome浏览器并不总是在标签刷新时获取新的meta标签。
在不知道文本是什么的情况下,也许ngram检测被页面内容所欺骗。
http://googleresearch.blogspot.com/2006/08/all-our-n-gram-are-belong-to-you.html
Chromium在菲律宾语中认为此页面:http : //www.reyalvarado.com/portfolio/cuba/ 注意:除所有者名称和菜单项外,页面上几乎没有文本。菜单项由FLIR动态替换为图像。
HTML将页面声明为美国英语:
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">
指定文档的默认语言,然后对每个元素/容器使用translate属性和Google的notranslate
类,如下所示:
<html lang="en">
...
<span><a href="#" translate="no" class="notranslate">English</a></span>
说明:
接受的答案提供了一个总括的解决方案,但没有解决如何为每个元素指定语言,这可以修复错误并确保您的页面可翻译。
为什么这样更好?这将与Google的国际化合作,而不是将其关闭。回到OP:
Chrome为什么会错误地确定页面使用其他语言并提供翻译?
答:Google试图帮助您进行国际化,但是我们需要了解为什么这会失败。根据NinjaCat的回答,我们假设Google 使用N-gram算法来读取和预测您网站的语言-因此,我们无法确切地说出Google为什么要翻译您的网页;我们只能假设:
translate="no"
和lang="en"
(或删除这些单词)将有助于Google正确预测页面的语言。不幸的是,大多数到达此职位的人都不知道是什么词引起了麻烦。使用Chrome内置的“翻译成英文”功能(在右键单击上下文菜单中)查看要翻译的内容,您可能会看到类似以下内容的意外翻译:
因此,请使用适当的翻译标签更新html,直到页面的Google翻译没有任何变化为止–然后,我们应该希望弹出的窗口消失,以供将来的访问者使用。
添加所有这些额外的标签会不会花费很多工作?是的,很有可能。如果您使用的是Wordpress或其他内容管理系统,请查看其文档以获取更新代码的快速方法!