跳轉到內容

多語種標記,如何

來自華夏公益教科書,開放的書本,開放的世界

在計算中,多語種標記是使用多種 標記語言 的有效形式編寫的文件或指令碼,無論標記的解析器或直譯器如何,都能執行相同的輸出。一般來說,多語種標記是兩種或多種語言的子集,可以用作通用的穩健配置檔案。

多語種 HTML5HTML,它被編寫為符合 HTML 和 XHTML 規範。[1] 多語種文件因此可以被解析為 HTML(它是 SGML-相容)或 XML,並將以相同的方式生成相同的 DOM 結構。例如,為了使 HTML5 文件滿足這些條件,兩個要求是它必須具有 HTML5 doctype,並且必須以格式良好的 XHTML 編寫。[2] 然後,同一個文件可以作為 HTML 或 XHTML 提供,具體取決於瀏覽器支援和 MIME 型別。

多語種標記文件的必需元素是 htmlheadtitlebody。因此,最基本的多語種標記文件將如下所示:[1]

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
  <head>
    <title>The title element must not be empty.</title>
  </head>
  <body>
  </body>
</html>

在多語種標記文件中,非空元素(如 scriptpdiv)即使為空,也不能自閉合,因為這在 HTML 中無效。[3] 例如,要向頁面新增一個空的文字區域,不能使用 <textarea/>,而必須使用 <textarea></textarea> 代替。

建立多語種文件的關鍵點

[編輯 | 編輯原始碼]
  • 不要使用 document.write()document.writeln()。使用 innerHTML 屬性代替。
  • 不要使用 noscript 元素。
  • 不要使用 XML 處理指令XML 宣告
  • 使用 UTF-8 編碼,並在 W3C 文件中列出的方式之一中宣告它。我建議使用 <meta charset="UTF-8"/>
  • 使用可接受的 DOCTYPE,如 <!DOCTYPE html>。不要使用 HTML4 或之前版本的 HTML 的 DOCTYPE 宣告。
  • 明確宣告 "html"、"math" 和 "svg" 元素的 預設名稱空間,如 <html xmlns="http://www.w3.org/1999/xhtml">
  • 如果在 XLink 名稱空間中使用任何屬性,則在 html 元素上宣告名稱空間,或在使用該屬性的外部元素上宣告一次。
  • 至少使用以下元素(它們不能省略):html、head、title 和 body
  • 每個 tr 元素必須明確地包裝在一個 tbody、thead 或 tfoot 元素中,以保持 HTML 和 XML DOM 的一致性。
  • 表元素中的每個 col 元素必須明確地包裝在一個 colgroup 元素中。
  • 使用 元素名稱的正確大小寫。HTML 和 MathML 元素名稱只能使用小寫字母,儘管某些 SVG 元素必須僅使用小寫字母,而某些必須使用混合大小寫。
  • 使用 屬性名稱的正確大小寫。HTML 和 MathML 屬性名稱只能使用小寫字母,定義 URL 除外。某些 SVG 屬性名稱必須僅使用小寫字母,而某些必須使用混合大小寫。
  • 在屬性值上保持大小寫一致性。一種簡單的方法是隻使用小寫字母,但這並不是必需的。
  • 只有某些元素可以為空。這些元素必須使用最小化的標記語法,如 <br/>(不允許使用結束標記)。這些空元素中的一些是:area、br、embed、hr、img、input、link 和 meta
  • 如果 HTTP 內容語言標頭 指定了恰好一個語言標籤,則使用 lang 和 xml:lang 屬性在 html 元素上指定語言。
  • 不要在 textareapre 元素內的文字開頭使用換行符。
  • 所有 屬性 值必須用單引號或雙引號括起來。
  • 不要在屬性值內使用 換行符
  • 不要使用 xml:spacexml:base 屬性,除非是在 MathML 和 SVG 等外部內容中。這些屬性在作為 text/html 提供的服務的文件中無效。
  • 在指定語言時,使用 lang 和 xml:lang 屬性。不要在沒有另一個屬性的情況下使用一個屬性,並且兩者必須具有相同的值。
  • 僅使用以下 命名實體引用:amp、lt、gt、apos、quot。對於其他內容,使用十進位制或十六進位制值代替命名實體。
  • 始終使用 字元引用 表示小於號和與號,除非在 CDATA 部分中使用。
  • 儘可能(儘管不是必需的),指令碼和樣式元素應連結到外部檔案,而不是內聯包含它們(即使對於非多語種文件,這也是一個很好的建議)。但是,當使用內聯內容時,它應該是“安全內容”,不包含任何有問題的“小於”或“與”字元(由於建立了不同的 DOM,因此轉義它們不是一種選擇)。還建議將內聯指令碼內容包裝在 CDATA 部分中,並使用註釋掉的 CDATA 標記(使用 //<![CDATA[ 作為指令碼前的第一行,並將 //]]> 作為最後一行,使用 "//" 來註釋掉 CDATA 標記)。但是,同樣地,您可以透過使用外部檔案而不是內聯內容來避免這些問題。

參考文獻

[編輯 | 編輯原始碼]
  1. a b 多語種標記:與 HTML 相容的 XHTML 文件,W3C 工作草案 2011 年 4 月 5 日
  2. WhatWG 部落格 - 簡述 XHTML5,2010 年 7 月 25 日
  3. 多語種標記:與 HTML 相容的 XHTML 文件:6.4 空元素。W3C 編輯草案 2012 年 7 月 9 日。
[編輯 | 編輯原始碼]
華夏公益教科書