<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> の <dfn><code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">translate</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor></dfn>は、その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容</anchor>を翻訳できるかどうかを表します。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <cite xml:lang="en-US-x-hixie">HTML Standard</cite> (<time>2013-11-22 20:38:38 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.whatwg.org/specs/web-apps/current-work/#the-translate-attribute">http://www.whatwg.org/specs/web-apps/current-work/#the-translate-attribute</anchor-external></li></ul></refs></section><section><h1>翻訳可能属性</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>は、その種類によって翻訳するべきものとしないべきものがあります。例えば <code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">title</anchor></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>は翻訳するべきですが、 <code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">class</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>は翻訳するべきではありません。
翻訳するべき<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>のことを<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">翻訳可能属性<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">translatable attribute</rt></rubyb></dfn>といいます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> ある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>が翻訳可能かどうかは、当該<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>の仕様 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> の場合は <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;6</anchor-internal>) で規定されています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">翻訳可能属性</anchor>の中には、条件付きのものもあります。例えば <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">input</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の 
<code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">value</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>は、 <code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">type</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>が <code class="HTML" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">button</anchor></code>
か <code class="HTML" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">reset</anchor></code>
の時のみ翻訳可能です。また、 <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">iframe</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の <code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">srcdoc</anchor></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>の値は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML文書</anchor>なので、再帰的に構文解析して翻訳可能な部分を探す必要があります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">翻訳可能属性</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">機械可読</anchor>な一覧データは <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://raw.github.com/manakai/data-web-defs/master/data/elements.json">https://raw.github.com/manakai/data-web-defs/master/data/elements.json</anchor-external> にあります。</p></section><section><h1>歴史</h1><section><h1>90年代</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">90年代</anchor>中期の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">日本</anchor>では、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Netscape Navigator</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Internet Explorer</anchor>
と連動して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">翻訳</anchor>を行う製品が存在していました。当時は有料や別売りだった <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NN</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IE</anchor>
を同梱したパッケージ製品もありました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> それらは、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>と連動する独自の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>を使って<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">翻訳</anchor>結果を表示したり、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロキシ</anchor>として動作して <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>内部に (結果のみ、ページ内併記、あるいは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フレーム</anchor>による併記などの方法で) <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">翻訳</anchor>結果を表示するものでした。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> この時代には数製品発売されていましたが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">日本語</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webサイト</anchor>の充実で需要が減少したのか、
数年でブームは去ったようです。</p></section><section><h1>HTML Standard</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> 10年代になって <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Chrome</anchor> が標準で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">翻訳</anchor>機能を実装しました。
これは表示中の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webページ</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">翻訳</anchor>して (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor> 上のテキストを置き換えて)
表示するものです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">翻訳</anchor>の有無を制御する必要が生じたことから、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> に <code class="HTMLa" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">translate</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>が追加されました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r6971    Introduce a new global attribute for localisers to tell whether or not content should be translated.</cite>
( (<time>2012-02-07 09:22:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=6970&amp;to=6971">http://html5.org/tools/web-apps-tracker?from=6970&amp;to=6971</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <cite><strong></strong>[<strong></strong>whatwg<strong></strong>]<strong></strong> Machine translation and related proposals</cite>
( (<time>2012-06-12 07:33:54 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2012-June/036354.html">http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2012-June/036354.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r7745  Clean up some translation-related things.</cite>
( (<time>2013-03-09 08:38:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=7744&amp;to=7745">http://html5.org/tools/web-apps-tracker?from=7744&amp;to=7745</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r8276  Mention that other specs may also list translatable attributes.</cite>
( (<time>2013-11-14 06:01:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=8275&amp;to=8276">http://html5.org/tools/web-apps-tracker?from=8275&amp;to=8276</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r8311  Allow &lt;input type=button value&gt; to be translated, since that value isn't submitted</cite>
( (<time>2013-11-23 05:22:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=8310&amp;to=8311">http://html5.org/tools/web-apps-tracker?from=8310&amp;to=8311</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r8322 Reset buttons also don't get submitted, so it's probably safe to translate them too.</cite>
( (<time>2013-12-03 08:07:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=8321&amp;to=8322">http://html5.org/tools/web-apps-tracker?from=8321&amp;to=8322</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <cite xml:lang="en-US">Internationalization Tag Set (ITS) Version 2.0</cite>
( (<time>2013-10-27 19:39:43 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/its20/#translatability-implementation">http://www.w3.org/TR/its20/#translatability-implementation</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <cite xml:lang="en">Doc: Using translate directive</cite>
(<time>2015-02-09 04:30:02 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://angular-translate.github.io/docs/#/guide/05_using-translate-directive">http://angular-translate.github.io/docs/#/guide/05_using-translate-directive</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <cite xml:lang="en">angular-gettext - Super-simple translation support for Angular</cite>
(<time>2015-01-13 19:51:31 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://angular-gettext.rocketeer.be/">https://angular-gettext.rocketeer.be/</anchor-external></figcaption><blockquote><p>&lt;a href=&quot;/&quot; translate&gt;Home&lt;/a&gt;</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <cite xml:lang="en">17954 – Attribute to indicate that the grammar should be translated (e.g. apply declensions), but that the base of the words should remain in the original language</cite>
(<time>2016-03-17 16:58:31 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.w3.org/Bugs/Public/show_bug.cgi?id=17954">https://www.w3.org/Bugs/Public/show_bug.cgi?id=17954</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <cite xml:lang="en">Editorial: synchronize with the DOM Standard · whatwg/html@21c6ec7</cite>
(<time>2016-03-20 18:07:11 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/21c6ec77594eb89b836d4872222f5916910967fd">https://github.com/whatwg/html/commit/21c6ec77594eb89b836d4872222f5916910967fd</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <cite xml:lang="en">Editorial: always state invalid value default</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GloverDonovan</anchor>著, <time>2018-03-05 13:36:29 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/7e941ae96b264d4743ea0afac00c3b3209ab0cde">https://github.com/whatwg/html/commit/7e941ae96b264d4743ea0afac00c3b3209ab0cde</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Google Chrome</anchor>
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">翻訳</anchor>機能はテキストを翻訳するだけで
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bidi</anchor>
の調整はしないようです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アラビア語</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">英語</anchor>に翻訳すると、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">右横書き</anchor>モードのままで、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">句読点</anchor>が変な位置に表示されます。
<time>2020-10-29T01:59:16.400Z</time></p></section></section></body></html>