<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://organizeseries.com/"
	>

<channel>
	<title>谷拓樹 &#8211; HTML5Experts.jp</title>
	<atom:link href="/hiloki/feed/" rel="self" type="application/rss+xml" />
	<link>https://html5experts.jp</link>
	<description>日本に、もっとエキスパートを。</description>
	<lastBuildDate>Sat, 07 Jul 2018 03:14:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.7.19</generator>
	<item>
		<title>昨今のCSS設計事情からみるCSS設計のあり方とは</title>
		<link>/hiloki/14372/</link>
		<pubDate>Wed, 15 Apr 2015 00:00:23 +0000</pubDate>
		<dc:creator><![CDATA[谷拓樹]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Components]]></category>
		<category><![CDATA[マークアップ]]></category>

		<guid isPermaLink="false">/?p=14372</guid>
		<description><![CDATA[連載： HTML5 Conference 2015 特集 (4)本記事は2015年1月に開催されたHTML5 Conferenceでお話させていただいた、 「Beyond CSS Architecture」というCSS設...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/h5conf2015/" class="series-257" title="HTML5 Conference 2015 特集" data-wpel-link="internal">HTML5 Conference 2015 特集</a> (4)</div><p>本記事は2015年1月に開催された<a href="http://events.html5j.org/conference/2015/1/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTML5 Conference</a>でお話させていただいた、
「Beyond CSS Architecture」というCSS設計のセッションをフォローアップする記事です。</p>

<p>本記事では、このセッションの概要と補足、またセッション中に説明できなかった点などについて書いていきます。</p>

<p><img src="/wp-content/uploads/2015/04/beyondcssarchitecture.jpg" alt="" width="500" height="373" class="aligncenter size-full wp-image-14555" srcset="/wp-content/uploads/2015/04/beyondcssarchitecture.jpg 500w, /wp-content/uploads/2015/04/beyondcssarchitecture-300x224.jpg 300w, /wp-content/uploads/2015/04/beyondcssarchitecture-207x154.jpg 207w" sizes="(max-width: 500px) 100vw, 500px" /></p>

<p>※当日のセッションの動画・スライドも公開されているので、文末からご覧ください。</p>

<h2>CSSの難しさと、昨今のCSS設計事情</h2>

<p>この近年、CSSにおける設計論というのが話題に出てくるようになりました。筆者も拙著『<a href="http://www.amazon.co.jp/gp/product/4844336355" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Web制作者のためのCSS設計の教科書</a>』を書いたり、各地でCSS設計をテーマとした講演をする機会が多くありました。</p>

<p>CSSの難しさというのは、<a href="https://html5experts.jp/t32k/13504/" data-wpel-link="internal">石本氏によるCSSコードの評価についての記事</a>にも書かれているのですが、CSSは良くも悪くも厳格なコード規約は少なく、ただ宣言的に書けばいいだけです。セレクタとその詳細度や、後出しされたルールの方が優先されるという、シンプルがゆえに「書く」のは簡単ですが、「直す」のは容易ではありません。</p>

<p>Normalize.cssの作者であり、現在Twitterのエンジニアであるニコラス・ギャラガー氏（<a href="https://twitter.com/necolas" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">@necolas</a>）のツイートを引用するならば、次のように考えられるかどうかです。</p>

<blockquote>
  <p>Replace &quot;can you build this?&quot; with &quot;can you maintain this without losing your minds?&quot;<br>
  &mdash; <a href="https://twitter.com/necolas/status/360170108028600320" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Nicolas Gallagher (@necolas) </a></p>
</blockquote>

<p><br></p>

<p>複数人のチームでの開発はもちろんですが、自分のひとりの開発であったとしても、いざメンテナンスするとなったときに、数日前に自分が書いたCSSを呪うようなことはよくあります。</p>

<p>中長期的に運用されるWebサイト、Webサービスにおいては、その運用に耐えうるメンテナブルかつ、拡張性のあるCSSを書くことは非常に重要です。
こうしたCSS設計の話題が以前よりも見かけるようになったのは、単純な数ページのWebサイトよりも、少しリッチで複数のテンプレートが必要なWebサイト、Webサービスが増えてきていることもあり、メンテナブルなCSSにするための設計とは何か、というのが求められているからかもしれません。</p>

<h2>OOCSSとBEM</h2>

<p>セッション内でも取り上げている<a href="https://github.com/stubbornella/oocss/wiki" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">OOCSS</a>と<a href="https://en.bem.info/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">BEM</a>は、CSS設計を考える上で避けられない方法論のひとつです。</p>

<p>OOCSSは、ページ上で繰り返されるビジュアルパターンをオブジェクトと考え、そのオブジェクトはHTML/CSSまたはJavaScriptのコードの固まりで構成されます。それはボタンやリスト、見出しというような単位であったり、場合によってはただ文字色を赤くするためのものかもしれません。こうした作られた小さなオブジェクトをレゴのように組み合わせてUIを作るというのが、OOCSSの基本的なアプローチです。</p>

<p>BEMは、Yandexという会社のフロントエンド開発チームによって考えられた開発手法です。BEMはUIをBlock,Element,Modifierという分類で設計するのですが、BEMで使われている命名規則とその記法が特徴的で、Blockを名前空間として使うのが良いアイデアとされています。</p>

<p></p><pre class="crayon-plain-tag">.menu { ... } /* Block */
.menu__item { ... } /* Block + Element */
.user { ... } /* Block */
.user_login { ... } /* Block + Modifier */
.user__avatar { ... } /* Block + Element */
.user__name { ... } /* Block + Element */</pre><p></p>

<p>このコード例では<code>.menu</code>がBlockの単位となり、またそれがセレクタの接頭辞にすることで、マークアップ上でつけられたクラス名を見るだけで、どのUI（Block）に依存するものかが分かります。例えば<code>class="item"</code>だと抽象的すぎて何に依存しているかわかりませんが、<code>.menu__item</code>であれば分かる、ということです。</p>

<p>また<code>_</code>、<code>__</code>の記号の組み合わせは、設計上のルールとして、単語間がどういう関係性を持つのかを明確にしています。<code>__</code>は一見冗長で、普通に名前をつけるときには使わなそうですが、それが良い意味でただの命名ではなく、デリミタ（区切り）として使われているということです。</p>

<p>このBEMのアプローチの細かなルールは必ずしもオリジナルのBEMに倣っているものばかりではなく、<a href="http://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">MindBEMding</a>のような独自のルールで運用されることもあります。筆者の<a href="https://github.com/hiloki/flocss" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">FLOCSS</a>も、いろいろなものを参考にして作成したものです。</p>

<h2>モダンなCSS設計の誤解</h2>

<p>OOCSS、BEMについて言及される記事を見ると、これらやCSS設計における大きな誤解を招いていると感じることがあります。</p>

<p>OOCSS派か、BEM派か、というような表現も見かけますが、多くの場合、OOCSSは複数のクラスを組み合わせるアプローチ、BEMは単一クラスのアプローチ、というような解釈をされているようです。</p>

<p>OOCSSが体系化された当時にはSassのようなメタ言語もなく、OOCSSを実現するためには複数のクラスを組み合わせるアプローチが適切だったというだけでしょう。事実、彼女自身が<a href="https://www.youtube.com/watch?v=GhX8iPcDSsI" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">&#8220;OOCSS and Preprocessors in a tree, K-I-S-S-I-N-G&#8221;</a>という講演で、OOCSSとSassを組み合わせたアプローチについて述べています。</p>

<p>また提唱者であるニコール・サリバン氏が関わったプロジェクトにおいては、<code>font-size</code>という単位でもオブジェクトとして分解することが、数百と宣言される<code>font-size</code>プロパティを、たった数個のクラスで管理することに意味がありました。</p>

<p>ただそのいくつかの例が拡大解釈され、<code>.red {color: red;}</code>や<code>.large {font-size: 36px}</code>というような、見た目だけの、コンテンツ派生の意味をもたないクラスを複数組み合わせるアプローチがOOCSSである、と考えられることは少なくありません。</p>

<p>しかし、OOCSSの本質は、現在のHTML/CSSでは難しいモジュラーなアプローチを実践するためのパラダイムである、と筆者は考えています。</p>

<p>一方、BEMについてもいくつかの誤解があるように感じています。Block、ElementあるいはModifierとしての命名と設計は、マークアップを見て、その構造をセレクタにするものではありません。</p>

<p></p><pre class="crayon-plain-tag">&lt;nav class="globalNav"&gt;
  &lt;ul&gt;
    &lt;li&gt;
      &lt;a href="/home"&gt;Home&lt;/a&gt;
    &lt;/li&gt;
    &lt;!-- more --&gt;
  &lt;/ul&gt;
&lt;/nav&gt;</pre><p></p>

<p>例えばこのようなマークアップがあった時に、その構造を意識してしまい、次のようなCSSにしてしまうことがあります。</p>

<p></p><pre class="crayon-plain-tag">&lt;nav class="globalNav"&gt;
  &lt;ul class="globalNav__menu"&gt;
    &lt;li class="globalNav__menu__item"&gt;
      &lt;a href="/home"&gt;Home&lt;/a&gt;
    &lt;/li&gt;
    &lt;!-- more --&gt;
  &lt;/ul&gt;
&lt;/nav&gt;</pre><p></p>

<p>極端な例ではありますが、近いコードを見ることはあるのではないでしょうか。こうなってしまうと、BEMが冗長すぎる、気持ちが悪い、というのは素直な感情だともいえます。</p>

<p>しかし本来のBEMらしい考え方であれば、このようなマークアップを元にセレクタに命名するものではなく、UIをBlock,Element,Modifierのツリー構造で考え、それが名前にも与えられるものです。</p>

<p>この例でいえば、<code>globalNav</code>をBlockとするならば、それを構成する要素は次のようになるかもしれません。</p>

<p></p><pre class="crayon-plain-tag">&lt;nav class="globalNav"&gt;
  &lt;ul class="globalNav__menu"&gt;
    &lt;li class="globalNav__menuItem"&gt;
      &lt;a href="/home"&gt;Home&lt;/a&gt;
    &lt;/li&gt;
    &lt;!-- more --&gt;
  &lt;/ul&gt;
&lt;/nav&gt;</pre><p></p>

<p>そもそも、もっと小さな単位にするべきかもしれません。</p>

<p></p><pre class="crayon-plain-tag">&lt;nav class="globalNav"&gt;
  &lt;ul class="globalNav__menu menu"&gt;
    &lt;li class="menu__item"&gt;
      &lt;a href="/home" class="menu__target"&gt;Home&lt;/a&gt;
    &lt;/li&gt;
    &lt;!-- more --&gt;
  &lt;/ul&gt;
&lt;/nav&gt;</pre><p></p>

<p>どちらが正しいかというものではなく、その時々で適切な命名や分割があるはずですが、少なくともマークアップの構造をなぞって親子関係を命名で表すのが、BEMの命名規則というわけではありません。</p>

<p>最後の例を見ての通り、BEMの記法であっても、複数のBlockとElement、つまりはそれぞれはOOCSS的にいえばオブジェクトであり、組み合わせによって作られるわけです。</p>

<p>つまり、OOCSS派かBEM派かという天秤があるわけではありませんし、思想として良いところを取り入れて、プロジェクトに適切な方法論、設計を考えることが重要です。</p>

<p>逆にいえば、これらは<a href="http://ja.wikipedia.org/wiki/%E9%8A%80%E3%81%AE%E5%BC%BE%E3%81%AA%E3%81%A9%E3%81%AA%E3%81%84" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">銀の弾丸</a>というわけでもありませんから、OOCSSやBEMがすべての問題を解決するわけでもありません。プロジェクトの規模やその運用の方向性によっては、もっと単純な規約のもとでCSSが書かれていても構いません。</p>

<p>いずれの場合も、そのプロジェクト内において一貫性が保たれていることのほうが大事で、<a href="https://github.com/necolas/idiomatic-css" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Ideomatic CSS</a>から引用するならば、次のようなことです。</p>

<blockquote>
  <p>どんなに多くの人が貢献したとしても、どのコードも一人で書いたようにすること。<br>
  &mdash; <a href="https://github.com/necolas/idiomatic-css" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Ideomatic CSS</a></p>
</blockquote>

<p>セッションで紹介しているツール、スタイルガイドや<a href="http://www.stylestats.org/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">StyleStats</a>のようなツールは、一貫性を保ったCSSを書くための補助となるものです。</p>

<p>これらもまたツールでしかなく、導入しただけで問題が解決するというわけではないので、どのように運用するか、自動化などを含めた仕組みを考えることがより重要です。</p>

<h2>まとめ</h2>

<p>セッションの最後に<a href="https://html5experts.jp/tag/web-components/" data-wpel-link="internal">Web Components</a>に触れていました。Shadow DOMによって、今のHTML/CSSにないスコープの概念がもたらされれば、現状HTML/CSSをモジュラーに設計・実装するためのいくつかの課題は解決するかもしれません。</p>

<p>しかし、それによってCSS設計が簡単になるか、といえば決してそうではありませんし、どちらかといえばより難しくなるかもしれません。</p>

<p>またWeb Componentsの実用は少し先かもしれませんが、現在でも<a href="https://html5experts.jp/hokaccha/13301/" data-wpel-link="internal">React</a>のようなものを採用したプロジェクトにおいては、CSSはどのように設計するか、というのは課題として出てきています。個人的にはそれを考えることは、HTML/CSSをより面白くするものでもあります。（その分の苦しみも多くありますが）</p>

<p>どのような未来がくるにせよ、よりよいCSS設計をするためには、より多くのパターンを知ることだと考えています。</p>

<p>同じリスト型のUIを組むにしても、どのようなパターンが目の前のプロジェクトにおいて適切か、それはパターンを多く知らなければいけません。</p>

<p>そのためには、世の中に多く公開されているフレームワーク、またはプロダクトとして公開されているWebサイトやWebサービスのコードを読むことが大事です。続々と出てくる、新たなOOCSSやBEMのような方法論たちも、食わず嫌いはせず一読してみてください。</p>

<p>CSS設計は非常に難しく、壊れないCSSを書くというのは不可能です。私は次の言葉を胸に、いつもCSSを書いています。</p>

<blockquote>
壊れない完璧な設計を求めるのではなく、壊れたときに勇気を持って修復できる設計を<br>
&mdash; <a href="https://html5experts.jp/cssradar/" data-wpel-link="internal">斉藤 祐也</a>
</blockquote>

<p><br></p>

<p>はじめから作ることはもちろん、どれだけシミュレーションや設計をしても壊れるときはありますから、それをいかに直しやすいものにするか、そしてそれが他の開発者にとって可能であり、数日後の自分でも直せるようなCSSを書くようにしましょう。</p>

<p>当日のセッションの動画・スライドは、こちらからご覧ください。</p>

<div class="aligncenter">

<!-- iframe plugin v.4.3 wordpress.org/plugins/iframe/ -->
<iframe width="560" height="315" src="https://www.youtube.com/embed/1VZ_Rm5_rY4" frameborder="0" 0="allowfullscreen" scrolling="yes" class="iframe-class"></iframe>

</div>

<p><a href="https://www.youtube.com/watch?v=1VZ_Rm5_rY4" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Youtube</a> /
<a href="http://www.slideshare.net/hiloki/beyond-css-architecture" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Slideshare</a></p>
]]></content:encoded>
		
		<series:name><![CDATA[HTML5 Conference 2015 特集]]></series:name>
	</item>
		<item>
		<title>「HTML5 Rocksの翻訳ハンズオン」html5j英語部イベントレポート</title>
		<link>/hiloki/6176/</link>
		<pubDate>Fri, 25 Apr 2014 03:00:05 +0000</pubDate>
		<dc:creator><![CDATA[谷拓樹]]></dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[イベント]]></category>
		<category><![CDATA[海外]]></category>
		<category><![CDATA[英語]]></category>

		<guid isPermaLink="false">/?p=6176</guid>
		<description><![CDATA[連載： イベントレポート (14)HTML5 Rocksは、開発者向けのHTML5周辺技術に関するリソースを公開しているサイトです。Googleによって運営されており、記事が多言語に対応しているものもあります。 html...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/eventarchives/" class="series-159" title="イベントレポート" data-wpel-link="internal">イベントレポート</a> (14)</div><p><a href="http://www.html5rocks.com/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTML5 Rocks</a>は、開発者向けのHTML5周辺技術に関するリソースを公開しているサイトです。Googleによって運営されており、記事が多言語に対応しているものもあります。</p>

<p>html5j英語部の今回のイベントでは、いくつか記事をピックアップし、グループに分けて翻訳を行いました。</p>

<p>今回翻訳対象としてピックアップした記事：</p>

<ul>
<li><a href="http://www.html5rocks.com/en/tutorials/webperformance/usertiming/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">User Timing API: Understanding your Web App &#8211; HTML5 Rocks</a></li>
<li><a href="http://www.html5rocks.com/en/tutorials/speed/animated-gifs/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Avoiding Unnecessary Paints: Animated GIF Edition &#8211; HTML5 Rocks</a></li>
<li><a href="http://www.html5rocks.com/en/tutorials/speed/unnecessary-paints/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Avoiding Unnecessary Paints &#8211; HTML5 Rocks</a></li>
<li><a href="http://www.html5rocks.com/en/tutorials/speed/high-performance-animations/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">High Performance Animations &#8211; HTML5 Rocks</a></li>
<li><a href="http://www.html5rocks.com/en/tutorials/speed/scrolling/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Scrolling Performance &#8211; HTML5 Rocks</a></li>
</ul>

<h2 id="">英語部名物・ライブ翻訳</h2>

<p>前回と同じく、今回も英語部・部長の斉藤さんによるライブ翻訳がありました。</p>

<p>今回のライブ翻訳で挙げたポイントは、次のような斉藤さんが翻訳するときの手順についてです。</p>

<p>抜粋元：<a href="http://www.html5rocks.com/en/tutorials/es6/promises/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">JavaScript Promises</a></p>

<blockquote cite="http://www.html5rocks.com/en/tutorials/es6/promises/">
<p>In browsers, JavaScript shares a thread with a load of other stuff. </p>
</blockquote>

<p>頭から順に訳していきますが、はじめからきっちりと、きれいな日本語に置き換えようとはしません。まず主語（S）と動詞（V）を見つけます。この一文でいえば、「JavaScriptは共有する」というが重要です。その上で具体的に訳していきますが、最初はラフな日本語で大丈夫です。それからきれいな日本語に整形します。</p>

<ol>
<li>「JavaScriptは共有する」</li>
<li>「JavaScriptは共有する、ひとつのスレッドを、他のものの読み込みと一緒に」</li>
<li>「JavaScriptは、他のものの読み込みと一緒に、ひとつのスレッドを共有します」</li>
<li>「ブラウザーにおいては、JavaScriptも、他のものの読み込みと一緒にひとつのスレッドを共有します」</li>
</ol>

<p>翻訳の難しさは、英語にあるのではなくて、日本語にあると部長は言います。<br>
英語が得意な人でも、英語のままとしての意味はわかったとしても、それを日本語として意味を違えずに表現することは難しいです。英語部では、オフライン/オンライン問わず、翻訳の経験者による監訳サポートがあるので、翻訳の初心者であっても、アドバイスをもらいながら進めることができます。</p>

<p><img src="/wp-content/uploads/2014/04/html5eng_vol1.jpg" alt="各グループで翻訳" width="1024" height="729" class="aligncenter size-full wp-image-6184" srcset="/wp-content/uploads/2014/04/html5eng_vol1.jpg 640w, /wp-content/uploads/2014/04/html5eng_vol1-300x213.jpg 300w, /wp-content/uploads/2014/04/html5eng_vol1-207x147.jpg 207w" sizes="(max-width: 1024px) 100vw, 1024px" /></p>

<h2 id="html5rocks">HTML5 Rocksの翻訳フロー</h2>

<p>今回会場提供をしていただいたグリーの<a href="https://twitter.com/miyazaqui" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">宮崎さん</a>からは、HTML5 Rocksの翻訳フローについてのLTを行ってもらいました。</p>

<p>スライド: <a href="https://docs.google.com/presentation/d/1JyPdsaKVuvNdylFaSwsI-LW5jpr-GLXm4kr5JmFvGXQ/edit#slide=id.p" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTML5 Rocks translation</a></p>

<p>宮崎さんは、すでにHTML5 Rocksの7つの記事を翻訳した経験があります。<br />
ちなみに宮崎さん曰く、HTML5 Rocksの記事の単位は<strong>rock</strong>だ、ということで、7rocksを翻訳したということになります <img src="https://s.w.org/images/core/emoji/2.2.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>

<p>HTML5 Rocksの翻訳フローは、Git/GitHubを使ったプロダクト開発と同様で、Pull Requestを通して翻訳済みのドキュメントを取り込むという流れになっています。</p>

<ol>
<li><a href="https://github.com/html5rocks/www.html5rocks.com" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">HTML5 RocksのWebサイトのレポジトリ</a>をForkする</li>
<li>翻訳したい記事を見つけ、コピーをして/ja/ディレクトリで展開、翻訳をする（詳細は後述）</li>
<li>Fork元にPull Requestを送る（送り先は<b>master</b>ブランチ）</li>
<li>Reviewを受けて、Feedbackがあれば対応、問題なければ取り込まれる</li>
<li>サイトに公開（<b>live</b>ブランチにマージされる）</li>
</ol>

<h3>未翻訳記事の見つけ方</h3>

<p>翻訳したいとおもっても、その記事がすでに日本語訳されていたり、もしくは進行中である場合は、残念ながら翻訳しても載せてもらうことはできません。</p>

<p><img src="/wp-content/uploads/2014/04/html5eng_vol1-2-300x294.png" alt="Localizationの場所" width="300" height="294" class="alignleft size-medium wp-image-6186" srcset="/wp-content/uploads/2014/04/html5eng_vol1-2-300x294.png 300w, /wp-content/uploads/2014/04/html5eng_vol1-2-207x202.png 207w, /wp-content/uploads/2014/04/html5eng_vol1-2.png 640w" sizes="(max-width: 300px) 100vw, 300px" /></p>

<p>翻訳済みの記事は、<strong>Localizations</strong>に翻訳された言語へのリンクが存在していますので、その記事は翻訳できません。（もし翻訳内容に誤りなどがあれば、それはそれで修正してPull Requestを送るとよいでしょう）</p>

<p>まだ公開はされていないけれど、進行しているものは<a href="https://github.com/html5rocks/www.html5rocks.com/issues" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Issues</a>および<a href="https://github.com/html5rocks/www.html5rocks.com/pulls" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Pull Requests</a>を確認するとわかります。Openのものだけでなく、Closeして公開待ちのような記事もあるかもしれないので、Closeの中も確認しましょう。</p>

<h3 style="clear:both">翻訳の進め方</h3>

<p>記事ページは<a href="https://github.com/html5rocks/www.html5rocks.com/tree/master/content" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">/content/</a>の中に格納されています。</p>

<p>翻訳したい記事のURLを確認し、該当のディレクトリを探っていくと、/en/ディレクトリが確認できるはずです。その中に原文の<b>index.html</b>がはいっているので、/en/ディレクトリをコピーし、/ja/ディレクトリをつくったら、その中の<b>index.html</b>を翻訳します。
（<a href="https://github.com/html5rocks/www.html5rocks.com/tree/master/content/tutorials/offline/quota-research" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">/ja/ディレクトリがある例</a>）</p>

<p>翻訳対象はこのHTMLファイルだけでなく、<strong>/conf/locale/ja/</strong>にもある場合があります。記事タイトルはこちらにも含まれている時があるので、該当の記事をみつけたら、<b>msgstr</b>に日本語訳を書きましょう。</p>

<p>また翻訳者のクレジットを残すこともできます。クレジットは、下記のフォーマットで記事内に差し込むことで追加されます。</p>

<p></p><pre class="crayon-plain-tag">{% block translator %}
&lt;div class=&quot;translator&quot;&gt;
  &lt;strong&gt;翻訳:&lt;/strong&gt; &lt;a href=&quot;https://github.com/hiloki/&quot;&gt;Hiroki Tani&lt;/a&gt;
&lt;/div&gt;
{% endblock %}</pre><p></p>

<p><a href="https://github.com/html5rocks/www.html5rocks.com/blob/master/content/tutorials/memory/effectivemanagement/ja/index.html" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">翻訳者クレジットが差し込まれている例</a></p>

<p>その他、翻訳やページの追加に関することは、下記のドキュメントに記載されているので、一度目を通しておくことをおすすめします。</p>

<ul>
<li><a href="https://github.com/html5rocks/www.html5rocks.com/blob/master/LOCALIZATION.md" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">LOCALIZATION.md</a>（<a href="https://gist.github.com/myakura/6d920770a4939b5deeb6" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">日本語訳</a>）</li>
<li><a href="https://github.com/html5rocks/www.html5rocks.com/blob/master/CONTRIBUTING.md" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">CONTRIBUTING.md</a></li>
</ul>

<h2>翻訳しながら技術的に学ぶ</h2>

<p>HTML5 Rocksが素晴らしい技術記事が充実したサイトということもあり、英語を翻訳する経験と力をつけるとともに、技術的に新しく学べるという点で、翻訳のしがいがあると思います。</p>

<p>今回オフライン活動のひとつとしてHTML5 Rocksをグループで翻訳しましたが、引き続きオンラインでも継続しておこないます。</p>

<p>本レポートや<a href="https://github.com/html5j-english/README" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">html5j英語部の概要</a>をみて興味を持ち、また監訳などを受けながら翻訳したい方がいればぜひ参加してください！その際には<a href="https://github.com/html5j-english/html5rocks" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">英語部リポジトリのHTML5 Rocksの内容</a>を一読ください。</p>

<p>もし不明なことがあれば<a href="https://github.com/html5j-english/html5rocks/issues" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Issues</a>や<a href="https://gitter.im/html5j-english/askQuestion" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Gitter</a>に連絡をください。</p>

<p>最後に大事なことを伝えておくと、html5j英語部はあくまでも有志による翻訳コミュニティです。
オリジナルであるHTML5 Rocksとは関連はなく、全てのHTML5 Rocksの日本語訳が本コミュニティを通じて行われているわけではありません。HTML5 Rocksの翻訳をしたい！という方は個人でどんどん翻訳をしてもらえれば良いのではないかと思います。</p>

<p>今回会場をお貸しいただいた<a href="http://gree.jp/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">グリー</a>の皆さん、ありがとうございました！</p>
]]></content:encoded>
		
		<series:name><![CDATA[イベントレポート]]></series:name>
	</item>
		<item>
		<title>「英語のオープンソースドキュメントを日本語翻訳する」html5j英語部キックオフレポート</title>
		<link>/hiloki/3266/</link>
		<pubDate>Mon, 11 Nov 2013 00:00:28 +0000</pubDate>
		<dc:creator><![CDATA[谷拓樹]]></dc:creator>
				<category><![CDATA[最新動向]]></category>
		<category><![CDATA[イベント]]></category>
		<category><![CDATA[海外]]></category>

		<guid isPermaLink="false">/?p=3266</guid>
		<description><![CDATA[連載： イベントレポート (5)html5j英語部では、英語のオープンソースドキュメントを日本語に翻訳する活動を開始しました。そのキックオフとなる11/1（土）に開催された、html5j英語部のイベントの報告をします。 ...]]></description>
				<content:encoded><![CDATA[<div class="seriesmeta">連載： <a href="https://html5experts.jp/series/eventarchives/" class="series-159" title="イベントレポート" data-wpel-link="internal">イベントレポート</a> (5)</div><p>html5j英語部では、英語のオープンソースドキュメントを日本語に翻訳する活動を開始しました。そのキックオフとなる11/1（土）に開催された、html5j英語部のイベントの報告をします。</p>

<p><img src="/wp-content/uploads/2013/11/banner-atnd.png" alt="html5j英語部" width="624" height="231" class="alignnone size-full wp-image-3268" srcset="/wp-content/uploads/2013/11/banner-atnd.png 624w, /wp-content/uploads/2013/11/banner-atnd-300x111.png 300w, /wp-content/uploads/2013/11/banner-atnd-207x76.png 207w" sizes="(max-width: 624px) 100vw, 624px" /></p>

<h2>世界を日本に。日本から世界へ。Web開発者のための架け橋となる。</h2>

<p>html5j英語部の谷です。html5j英語部では、英語のオープンソースドキュメントを日本語に翻訳する活動を行っています。ただそれだけではなく、日本語の情報を世界に届けるために、日本語を英語に翻訳するといった活動にも今後取り組んでいく予定です。</p>

<p>今回のキックオフイベントでは、部長の<a href="https://html5experts.jp/cssradar/" title="斉藤祐也" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">斎藤（@cssradar）</a>からこうした英語部発足の目的についての話や、英語部での翻訳フローなどについてのプレゼンテーションをおこないました。
（より詳しい英語部についての説明はGitHubページにある <a href="https://github.com/html5j-english/README" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">html5j英語部について</a> をご覧ください）</p>

<p>英語部での翻訳活動は、<a href="https://github.com/html5j-english/README/wiki/Review-and-Pull-Request-Work-Flow" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Git/GitHubを使ったワークフロー</a>でおこないます。翻訳者は対象のドキュメントをForkし、翻訳したものをPull Requestで戻すという形式でおこないます。その間には監訳者によるフィードバックがあるので、翻訳初心者のひとでも安心して参加できるようにしています。</p>

<h2>部長によるライブ翻訳</h2>

<div id="attachment_3275" style="width: 490px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2013/11/live_translation.jpg" alt="斉藤による、ドキュメントのライブ翻訳" width="480" height="320" class="size-full wp-image-3275" srcset="/wp-content/uploads/2013/11/live_translation.jpg 480w, /wp-content/uploads/2013/11/live_translation-300x200.jpg 300w, /wp-content/uploads/2013/11/live_translation-207x138.jpg 207w" sizes="(max-width: 480px) 100vw, 480px" /><p class="wp-caption-text">斉藤による、ドキュメントのライブ翻訳</p></div>

<p>ライブコーディングならぬ、簡単なライブ翻訳を披露しました。
その中では次のようなことが挙げられました。</p>

<ul>
<li>部分部分で訳してもそれが正しいとは限らない。先に進みながら、戻って意味を整える</li>
<li>takeやhaveなど、辞書を引けば多くの意味が存在する単語は難しい。律儀に訳すのではなく、文脈上不自然でない形で流してしまうこともある。このあたりは経験の差が出てくるだろう。</li>
<li>英語として理解できるが、それを日本語で適切に表現するのが難しい。時には国語辞典なども用いることもある。</li>
<li>翻訳・辞書のWebサービスでオススメは<a href="http://www.alc.co.jp/" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">英辞郎（スペースアルク</a>）。</li>
<li>なるべく原文著者の意図、クセなどを考慮するようにする。</li>
</ul>

<p>あくまでこれらは斎藤の場合、ということではありますが筆者も納得の内容でした。英辞郎は私も使っていますが、単語を調べると多くの例文も表示されるので助かります。単語だけでみても意味をつかめない時は、前後の単語と組み合わせて検索する意味が見えることもあります。</p>

<h2>WebPlatform.org翻訳のグループワーク</h2>

<p>本イベントのメインであるグループワークでは、WebPlatform.orgの翻訳をおこないました。その中の<a href="http://docs.webplatform.org/wiki/beginners" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">Beginners</a>のページを対象に、まだ日本語訳されていない項目をみんなで翻訳してみました。</p>

<p>翻訳後の原稿は下記に集約されます。
<a href="https://github.com/html5j-english/webplatform" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">html5j-english / webplatform</a>
※最終的には本家のWikiに転載予定です。</p>

<p>グループは、それぞれに英語翻訳の経験者を置く形式で5つほどに分け、未翻訳の項目を選び、その中のセクションをグループメンバーで分担するといった形で進行しました。</p>

<div id="attachment_3276" style="width: 490px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2013/11/groupwork.jpg" alt="各グループ、もくもくと翻訳に取り組んでいます。" width="480" height="320" class="size-full wp-image-3276" srcset="/wp-content/uploads/2013/11/groupwork.jpg 480w, /wp-content/uploads/2013/11/groupwork-300x200.jpg 300w, /wp-content/uploads/2013/11/groupwork-207x138.jpg 207w" sizes="(max-width: 480px) 100vw, 480px" /><p class="wp-caption-text">各グループ、もくもくと翻訳に取り組んでいます。</p></div>

<p>翻訳を進めて行く中でいろいろな質問も飛び交います。</p>

<ul>
<li>「だ/である」調か、「です/ます」調か？</li>
<li>CSSプロパティのような用語は、そのまま英語表記か、カタカナにするか？</li>
</ul>

<p>また多くの人が言っていたのは、冒頭の斎藤のライブ翻訳にもあったような、<strong>「意味はわかるが、日本語でどう表現すべきかわからない」</strong>ということでした。今回の対象ドキュメントはBeginnersの項目であったこともあり、Webデベロッパ、エンジニアの方であれば書いてあることは理解できるものの、日本語にしたとたんに堅苦しく、また意味が掴みづらいものになってしまっているようでした。
こうした自分ではしっくりこない、自信がない翻訳があっても、基本的に監訳者をはさむ翻訳フローになっているので、監訳者の校正やアドバイスをもらうことができます。</p>

<p>グループワークの最後は、代表者がグループメンバーの翻訳をとりまとめ、GitHubにPull Requestをおこなって終了となりました。</p>

<h2>グループワークで集まった翻訳に対する監訳の一例</h2>

<p>後日集まった翻訳に対し、斉藤による監訳フィードバックがありました。
ここではその一部の監訳例を紹介します。</p>

<h3><a href="https://github.com/html5j-english/webplatform/pull/2#discussion-diff-7432175" data-wpel-link="external" target="_blank" rel="follow external noopener noreferrer">ボックスモデルの監訳</a>より引用</h3>

<p>When you use margins and padding to adjust the way elements are laid out, your style rules interact with the browser&#8217;s defaults in ways that can be complex. Different browsers lay elements out differently. The results might look similar until your stylesheet changes things. Sometimes this can make your stylesheet give surprising results.</p>

<h4>監訳前：</h4>

<p>要素がどのようにレイアウトされるかを調整するためにmarginやpaddingを使用するときは、作成したスタイルルールはブラウザのデフォルトルールと複雑に作用し合います。ブラウザが異なると、要素をどうレイアウトするかも異なります。作成したスタイルシートが何も変更していない間は、レイアウト結果は似たようなものになるかもしれません。そのため、作成したスタイルシートが思わぬレイアウト結果につながることもときどきあります。</p>

<h4>監訳後：</h4>

<p>marginやpaddingを使って要素のレイアウトを調整する場合、作成したスタイルルールはブラウザのデフォルトルールと複雑に作用しあいます。ブラウザが異なれば要素をどうレイアウトするかも異なります。スタイルシートで変更を加える前は、結果は似たような見た目かもしれませんが、スタイルシートで変更した箇所が思わぬ結果になることも時々あります。</strong></p>

<p>斉藤よりこの監訳についての補足として<strong>「元の翻訳は間違えていると言えるほどでは決してありませんが、日本語らしい語順を鑑みて、時に意訳したり、原文の意味を変更しない程度に省略したりすることも多くあります」</strong>とのことでした。</p>

<p>私自身も翻訳の手伝いをする身としては、この意訳をする、というのがなかなか難しいと感じることがあります。自分の中では許容範囲の意訳あったものが、他の人から見れば、原文の意味をねじ曲げてしまうような意訳になっていることもあるので、このあたりは経験が必要ではないかと思います。</p>

<h2>英語部では翻訳者/監訳者を募集しています！</h2>

<p>今回のイベントに参加されたかどうかに関わらず、英語部の活動に参加したい・興味がある方はぜひ下記より表明をおねがいします！
英語の翻訳経験が無い、Git/GitHubを使ったことがないという方でも気軽にご参加ください。
→ <a href="https://github.com/html5j-english/README/issues/2" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Q. Organizationに参加するには?</a></p>

<p>また同時に監訳者も募集します。英語の翻訳経験があるが、監訳の経験はないという方でも、すでに英語部やその他翻訳活動での監訳経験者に相談することもできるので大丈夫です。
→ <a href="https://github.com/html5j-english/README/issues/1" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">Q. 監訳者になりたい!</a></p>

<h2>まとめ</h2>

<p>キックオフイベントということもあり、若干進行が雑になってしまったところもあったかと思いますが、参加者の皆さんの協力のおかげで無事終了しました。今回はグループワークに割ける時間もやや短かったのですが、次回にはもう少し時間を取れるようにします。
また翻訳活動そのものは今回のようなハンズオン形式だけでなく、GitHubを使ったオンライン上での活動もおこなうため、引き続き皆さんとコラボレーションできればと思います。</p>

<div id="attachment_3279" style="width: 490px" class="wp-caption aligncenter"><img src="/wp-content/uploads/2013/11/all.jpg" alt="参加者の皆さんとの集合写真" width="480" height="320" class="size-full wp-image-3279" srcset="/wp-content/uploads/2013/11/all.jpg 480w, /wp-content/uploads/2013/11/all-300x200.jpg 300w, /wp-content/uploads/2013/11/all-207x138.jpg 207w" sizes="(max-width: 480px) 100vw, 480px" /><p class="wp-caption-text">参加者の皆さんとの集合写真</p></div>

<p>また今回場所をお貸しいただいた、<a href="http://www.ni-ichicafe.com/" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">渋谷21Cafe</a>の皆様もご協力ありがとうございました！
本イベントについて、21cafeさんの方でも<a href="http://on.fb.me/1dK70r2" target="_blank" data-wpel-link="external" rel="follow external noopener noreferrer">レポート</a>を書いていただいているので、こちらもチェック！</p>
]]></content:encoded>
		
		<series:name><![CDATA[イベントレポート]]></series:name>
	</item>
	</channel>
</rss>
