translate 属性

3.2.5.4 translate 属性

translate 属性は列挙属性です。ページがローカライズされている場合に、要素の属性値とその Text ノードの子の値が翻訳されたほうが良いのか、または、それらを変更せずにそのままにしておくほうが良いのかを指定するために使われます。

この属性のキーワードは、空文字列、yesno です。空文字列と yes キーワードは yes 状態に対応付けられます。no キーワードは no 状態に対応付けられます。加えて、三つ目の状態、inherit 状態があります。これは 指定がなかった場合のデフォルト(かつ、無効な値が指定された場合のデフォルト)です。

それぞれの要素(非 HTML 要素も)は翻訳モードを持ちます。これは translate-enabled 状態にあるのか、no-translate 状態にあるのかを表します。もし HTML 要素translate 属性が yes 状態にあるなら、その要素の翻訳モードtranslate-enabled 状態になり、その要素の translate 属性が no 状態にあるなら、その要素の翻訳モードno-translate 状態になります。いずれでもなければ、その要素の translate 属性は inherit 状態にあるか、または、その要素は HTML 要素 でないゆえに translate 属性を持ちません。いずれの場合でも、その要素の翻訳モードは、親要素があれば、それと同じ状態になります。その要素がルート要素なら、translate-enabled 状態になります。

要素が translate-enabled 状態にあるとき、その要素の翻訳可能属性とその Text ノードの子の値は、ページがローカライズされた際には翻訳されることになります。翻訳可能属性として挙げられていない要素の属性は翻訳されるべきではありません。

要素が no-translate 状態にあるとき、その要素の属性値(翻訳可能属性の値を含む)とその Text ノードの子の値は、ページがローカライズされる際には、ありのまま放置されるべきです。たとえば、その要素が人の名前やコンピュータープログラムの名前を含んでいるなどの理由が考えられるからです。

次の属性は翻訳可能属性です:

  • th 要素の abbr
  • area, img, input 要素の alt
  • meta 要素の content, ただし name 属性が、値が翻訳可能と分かっているメタデータ名を指定している場合
  • aarea 要素の download
  • optgroup, option, track 要素の label
  • HTML 要素lang; "translated" が翻訳に使われる言語に一致しなければならない
  • input and textarea 要素の placeholder
  • iframe 要素の srcdoc; パースされて、かつ、再帰的に処理されなければならない
  • HTML 要素style; パースされて、かつ、再帰的に処理されなければならない(たとえば、'content' プロパティの値に対してなど)
  • すべての HTML 要素title
  • Button 状態または Reset Button 状態にある type 属性を持つ input 要素の value

translate IDL 属性は、取得時には、その要素の翻訳モードtranslate-enabled なら true を、そうでなければ false を返さなければいけません。セット時には、新たな値が true ならこのコンテント属性の値を "yes" に、そうでなければこのコンテント属性の値を "no" にセットしなければいけません。

この例では、ページがローカライズされるときに、ドキュメントのすべてが翻訳されるべきです。ただし、キーボード入力例とプログラム出力例は除きます:

<!DOCTYPE HTML>
<html> <!-- ルート要素のデフォルトは translate=yes -->
 <head>
  <title>Bee Game</title> <!-- 祖先から暗黙的に translate=yes が引き継がれる -->
 </head>
 <body>
  <p>Bee Game は英語のテキストアドベンチャーゲームです。</p>
  <p>ゲームを始めたら、まずはじめに
  <kbd translate=no>eat honey</kbd>とタイプしてください。するとこんなふうに答えます:</p>
  <pre><samp translate=no>Yum yum! That was some good honey!</samp></pre>
 </body>
</html>

※ 原文:http://www.w3.org/TR/2014/REC-html5-20141028/dom.html#the-translate-attribute