- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
对于多语言网站,将这种链接放在头部是一个很好的做法:
<head>
<link rel="alternate" hreflang="en" href="/en">
</head>
但是,according to an answer问题Semantic markup for language switcher ,语言切换器应该看起来像:
<nav>
<h1>Translations of this page</h1> <!-- could be omitted → usability question -->
<ul>
<li>English</li> <!-- could be omitted → usability question -->
<li><a rel="alternate" href="/pl" hreflang="pl" lang="pl">Polski</a></li>
<li><a rel="alternate" href="/de" hreflang="de" lang="de">Deutsch</a></li>
</ul>
</nav>
据此,我有几个语义标记问题:
SEO 是否需要这两条规则?或者,如果我的网站上有语言切换器,则不再需要 head
中的链接?
假设我在页面上:example.com/pl/kontakt
。 head
(或nav
)中的翻译链接应该指向:example.com/en/contact
(直接翻译),还是仅指向 example.com/en
(英文主页)?
关于更具体的情况:example.com/pl/aktualnosci/id/101
。 'aktualnosci' 的意思是新闻。如您所见,并非所有新闻都可以翻译成每种语言。有时仅根据参数很难预测完美的翻译 URL。所以问题是:翻译 link
(或 nav
)应该指向此 URL 的位置:example.com/pl/artykul/id/101
,当:
我希望我的问题很清楚。但我再举一个例子:有人在 example.com/en/news/2015/03/02/stackoverflow-rules
页面上,并且此新闻未翻译成波兰语。 放错了吗:
<link rel="alternate" hreflang="pl" href="/pl/aktualnosci">
作为翻译?当然这个页面不是翻译,而只是例如所有翻译新闻的列表。
从语义上来说,这是一个错误,因为这不是翻译,但从用户体验的角度来看,它很棒,因为它指向最近的翻译资源,让用户的生活更轻松。
最佳答案
alternate
+hreflang
:link
与 a
从语义上讲,使用哪个没有区别。在这两种情况下,链接都链接到页面的翻译。
但可以想象,消费者(例如搜索引擎)决定忽略 a
元素上的 alternate
+hreflang
,例如因为一些网站允许在用户评论中使用这种标记。用户很少可以编辑 head
,因此他们可能只会在 link
元素上查找 alternate
+hreflang
头
。
除非您有充分的理由不这样做,否则只需同时提供:
body
(a
元素)中的语言切换器,特别适用于您的人类用户head
(link
元素)的机器人的翻译链接alternate
+hreflang
链接是 defined to point to a translated document ,不是网站。
如果 /pl/artykul/id/101
没有被翻译成其他语言(或者你不确定它是什么,或者你不知道 URL),简单地不要不要使用alternate
+hreflang
。
是的,在这种情况下链接到翻译的父页面是错误的:/pl/aktualnosci
不是 /en/的翻译news/2015/03/02/stackoverflow-rules
.
当然,出于可用性原因,您仍然可以提供此类链接,但您不应为此链接使用 alternate
+hreflang
标记。
关于HTML5 : should hreflang always point to a direct translation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31652346/
我听说 Translate API 需要付费,但究竟是什么阻止了我们使用免费的 Google 翻译服务 here免费 ?否则,免费服务的限制是什么? 最佳答案 根据下面的链接,没有什么可以阻止您。 h
我正在修复我的 Karma 配置以运行 Angular2 - rc 1 版本的测试。我可以运行测试,但如果我在 html 中有一个翻译管道,它们就会失败。(我可以让它工作的配置是从 [这里][1] 得
我正在使用以下代码: GttService myService = new GttService("ex1cor.ex1Ap.1"); myService.setUserCredentials("ex
是否可以在 Silverstripe 3 中翻译数据对象? 我使用这个模块: http://www.silverstripe.org/translatable-module/ 在我的配置中是否定义了以
我有以下三个问题 我想使用 Google 的 API 来翻译文本。我知道谷歌对翻译和检测单独收费。谷歌翻译也支持翻译两种翻译方式 i) 通过指定源和目标,如 https://www.googleapi
我一直在使用 Microsoft Translator 的 HTTP API 来翻译我网站上的文本。 作为the documentation describes , 有一个选项可以指定翻译的类别。找不
当您在 localhost 上开发应用程序时,是否有机会在不获取 key 的情况下使用 Use Google Translation API? 我希望这样的事情能够奏效' https://www.go
我正在尝试翻译实体的某些字段,但在尝试创建对象时出现以下错误... id; } /** * Set name * * @param string $nam
当用户访问我们的网站时,我们使用 Google Translate API 将我们的内容翻译成用户的语言。 (当然,我们遵循署名和链接要求,以便用户知道内容是 Google 的翻译。) 为了优化,我们
我非常频繁地使用谷歌翻译 API V2,在大约 2000 个请求之后,我开始在返回的 JSON 中得到这个: Array ( [error] => Array (
我刚开始使用 Google 翻译 API,在测试过程中我们注意到,对于某些翻译(我尚未找到模式),我们会在响应中收到\u200b 字符。这会导致很多问题,最重要的是,它似乎没有任何目的或没有任何意义。
从laravel 5.8升级到laravel 6.0后,发现这个错误。 Method Illuminate\Translation\Translator::getFromJson does not e
这是一个基本的移动滑入/滑出菜单。 我发现很难调试,但基本上我的问题是,当我按下菜单按钮时,菜单会顺利打开,再次按下它会顺利关闭。然而,当我再次按下它(第三次)时,它不顺利打开,它只是出现。但是它仍然
我的 Android Studio 的翻译编辑器无法正常工作。如果我打开翻译编辑器确实列出了字符串的正确键,但是找不到默认值和翻译。所有键都有一个默认值,其中大多数也有一个翻译。 我重新启动了 And
我正在尝试从 python 控制台而不是通过 bazel -build 运行 Tensorflow 的 translate.py,但我在这两行出现错误: from tensorflow.models.
本文整理了Java中org.apache.tika.language.translate.YandexTranslator.translate()方法的一些代码示例,展示了YandexTranslat
我需要来自 Google Transle API 的同义词信息。有没有可能得到它? 最佳答案 抱歉不行。看到这个 post .看起来他们opened a PIT添加功能。你应该给它加星号来增加重量!
我在我的一个项目中使用 Google Cloud Translation API。我想指定翻译的性别。我无法在 Google Cloud Translation 中找到相关信息。我也在互联网上搜索了很
我已经在我的 Angular-Cli 应用程序中实现了 ngx-translate 并且在我执行以下操作时工作正常: {{ 'some.value' | translate }} 但是我该如何翻译 H
我决定在我的项目中使用 Google Cloud Translation API。在我尝试运行他们的脚本之前,一切似乎都很好。它总是说我需要“使用 require([])”。 在我在 require
我是一名优秀的程序员,十分优秀!