2

我正在尝试借助 HTML lang 属性创建一个支持多种语言的网站。我在这里找到了这个例子:

<!DOCTYPE html>
<html>
<body>

<p>This is a paragraph.</p>
<p lang="fr">Ceci est un paragraphe.</p>

</body>
</html>

我已经在我的操作系统中将德语定义为语言,并在不同的浏览器上进行了尝试,但我也总是看到法语段落。这就是我所看到的:

这是一个段落。

Ceci est un 段落。

4

2 回答 2

3

lang属性指定元素内容的语言。其他一切都取决于用户代理。网站管理员。

示例用途:

  • 屏幕阅读器可以使用它来使用适当的发音
  • 浏览器可以使用它来使用音节
  • 搜索引擎可以使用它来查找相关内容
  • 网站管理员可以使用它来相应地设置内容的样式,例如使用带有 CSS 的元素的正确引号qquotes

默认情况下,用户代理绝不应该隐藏不同语言的内容。想想这些例子:

  • <p lang="en">I met a nice guy there. His name was <span lang="de">Max Mustermann</span>.
  • <p lang="en">He said to me <q lang="de">Halt! Stopp!</q>.</p>
  • <p lang="en">The original title is <cite>Faust. Eine Tragödie.</cite>.</p>

当不同语言的内容被隐藏时,它们会显示:

  • 我在那里遇到了一个好人。他以前的名字是 。
  • 他对我说。
  • 原标题是。

看来你想用它来实现多语言页面。虽然这可以通过 JS/CSS 实现,但通常不是最好的方法。通常,您可能希望为每种语言使用单独的页面,并将翻译与链接类型alternate和相应的链接链接hreflang

<!-- on the page <example.com/en/about-me>, you could link to the German translation -->
<link rel="alternate" hreflang="de" href="/de/ueber-mich" />
于 2013-06-04T19:17:39.520 回答
0

lang 属性位于整个页面的 HTML 标记上,并指定页面的默认语言是什么。它是描述内容的元数据。你试图用它做的不是它所做的。

您可以通过使用 JQuery 来隐藏页面中所有 lang 属性不等于您指定的内容的标签来做您想做的事情,但是您必须研究如何发现浏览器中的系统语言是什么(假设这是可能的)。如果您不想将 JQuery 拖入其中,则可以自己遍历 DOM。

于 2013-06-04T16:24:00.780 回答