2013-06-04 52 views
0

我試圖創建一個支持HTML lang屬性幫助多種語言的網站。我發現這裏的例子:HTML 5 lang屬性不按預期方式工作

<!DOCTYPE html> 
<html> 
<body> 

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

</body> 
</html> 

我定義語言爲德語在我的操作系統,並試圖與不同的瀏覽器,但我總能看到法國段落爲好。這就是我看到的:

這是一段。

Ceci est un paragraphe。

回答

0

lang屬性發布在整個頁面的HTML標籤上,specifies what the default language of the page is。它是描述內容的元數據。你試圖用它做什麼不是它所做的。

你可以通過使用JQuery來隱藏頁面中所有具有不等於你指定的lang屬性的標籤,但你必須研究如何發現系統語言在瀏覽器中(假設可能)。如果你不想拖入JQuery,你可以自己走DOM。

+0

那麼,什麼是使用lang屬性,然後呢?正如我所說, – rico

+0

@rico元數據。這裏是w3.org鏈接:http://www.w3.org/TR/2011/WD-html5-20110525/elements.html –

+0

好的,再次感謝,但我仍然沒有看到它真正的用處,文件提到只有這樣:「用戶代理可以使用元素的語言來確定正確的處理或渲染(例如在選擇適當的字體或發音,或用於字典選擇)」。 – rico

2

lang屬性指定元素內容的語言。其他一切都取決於用戶代理響應。網站管理員。

示例使用:

  • 一個screen reader可以用它來使用相應的合音
  • 瀏覽器可以用它來使用syllabification
  • 搜索引擎可以用它來尋找相關內容
  • 網站管理員可以使用它來相應地設計內容,例如使用正確的quotation marksq元素與CSS的quotes

決不意味着用戶代理隱藏在默認情況下,不同的語言的內容。想到這些例子:

  • <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可以實現這一點,但它通常不是最好的方法。通常,您可能需要使用單獨的頁面爲每種語言,並與link type 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" />