我正在尝试借助 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 段落。
该lang属性指定元素内容的语言。其他一切都取决于用户代理。网站管理员。
示例用途:
默认情况下,用户代理绝不应该隐藏不同语言的内容。想想这些例子:
<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" />
lang 属性位于整个页面的 HTML 标记上,并指定页面的默认语言是什么。它是描述内容的元数据。你试图用它做的不是它所做的。
您可以通过使用 JQuery 来隐藏页面中所有 lang 属性不等于您指定的内容的标签来做您想做的事情,但是您必须研究如何发现浏览器中的系统语言是什么(假设这是可能的)。如果您不想将 JQuery 拖入其中,则可以自己遍历 DOM。