HTML 文書内で翻訳してよい箇所かどうか指定する ― 2021年12月08日 23時31分
この記事は HTML アドベントカレンダーの 8 日目の分です。
英語の技術文書を機械翻訳して読んでいたら、固有名詞やプログラミングコードまで翻訳されておかしな日本語になっていたという経験はないでしょうか。そのような事態を防ぐために使えるのが translate
属性です。
ある要素の translate
属性の値に no
を指定すると、その要素の内容を翻訳の対象にしてはいけないと示すことになります。yes
または空文字列を指定すると、翻訳の対象にしてよいと示すことになります。
<pre translate="no"><code>
int n = 0;
/* <span translate="yes">ここで <span translate="no">printf</span> しないと
なぜか <span translate="no">segmentation fault</span> する。</span> */
printf("%d\n", n);
</code></pre>
translate
属性を指定しない場合は親要素の値を引き継ぎ、親要素がない (自身が html
要素である) 場合のデフォルト値は yes
です。つまり、デフォルトでは文書全体を翻訳の対象にしてよいということになります。
translate
属性の効果は一部の属性にも及びます。任意の要素の title
属性、img
要素の alt
属性、input
要素の placeholder
属性などの値は、(その要素が translate="yes"
相当なら) 翻訳の対象となりえます。さらには、style
属性の値を解析した結果の CSS content
プロパティの値なども翻訳の対象となりうるとされています。
この記事を書いていて気づきましたが、a
要素の download
属性の値も翻訳の対象になりうるとされています。しかし、download
属性の値はファイル名として扱われるので、勝手に翻訳されると困ったことになるかもしれませんね。
コメント
トラックバック
このエントリのトラックバックURL: http://nanto.asablo.jp/blog/2021/12/08/9446555/tb
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。