CakePHP3の公式ドキュメントを翻訳する方法

TOP » 記事 » CakePHP » CakePHP3の公式ドキュメントを翻訳する方法

DSC01679

はじめに
2015年の CakeFest in New York に参加して、オープンソースの素晴らしさを感じました。そこで、普段利用しているCakePHPに対して何か貢献できないかと思い、CakePHPの公式ドキュメントの翻訳を始めました。
以下は翻訳素人の私が、CakePHPの翻訳をされていた方たちの力を借りてまとめたものになります。
また、翻訳のメンバーは積極的に募集中ですので、ご興味のある方はお問い合わせよりご連絡ください。

翻訳する環境の準備
以下はMacでの環境準備になります。Windowsの場合はよく分かりませんが、翻訳会のメンバーであり、いつも助けてくれる方はWindowsで翻訳していますので、不明点はご連絡ください。相談してみます。

github.comでフォークする

以下のリポジトリから自分のアカウントにフォークします。
CakePHP3公式リポジトリ

これで翻訳をした時に管理するリポジトリを準備しました。

フォークしたリポジトリと作成済みのVagrantファイルを clone する

自分が翻訳用に使用するディレクトリを作成し、そこに clone します。
こちらのREADME.mdで説明されていますが、念のため手順を記します。

Vagrantfileの内容を修正して vagrant up する

cakephp_docs_vagrantディレクトリが作成されるので、その中の Vagrantfile の内容を修正します。
私は Finder から該当のファイルを見つけ、ダブルクリックして標準のエディタで編集をしました。

修正する内容
修正前: 「config.vm.synced_folder “/path/to/your/cakephp/docs”, “/forked_docs”」
上記のように記載されている内容を以下のように修正
修正後: 「config.vm.synced_folder “/Users/ユーザ名/htdocs/cakephp3doc/docs”, “/forked_docs”」

パスの指定に ~/htdocs/cakephp3doc/docs とした場合はうまく動きませんでした。
念のため絶対パスで記述されることをお勧めします。
修正が完了したら以下ディレクトリに移動して vagrant up してください。

vagrant up で vbguest に関するエラーが発生した場合、ゲスト側とホスト側のバージョンの差が原因として挙げられます。VagrantFile 内、vbguest の auto update を有効化して試してみてください。
コミュニティーへの連絡
まだまだ CakePHP3 は未着手のものが多いので、まずは翻訳前のものを着手いただけると助かります。以下のグループと公式リポジトリを参考にして、翻訳未着手でこれから翻訳したいものを決めます。

Facebook公式グループ: https://www.facebook.com/groups/469140879787423/
翻訳会グループ: https://www.facebook.com/groups/transcake/

翻訳するページが確定すれば、それを Facebook 公式グループに宣言します。宣言の仕方は単純で、公式グループの投稿をご参考ください。これをしないと複数人が同時で翻訳を行ってしまい、気づけば本家に反映されてせっかくの貢献が無駄になることがあります。

翻訳の開始

ブランチの作成

フォーク & clone してきたリポジトリから、翻訳用にブランチを作成します。 master で作業してしまうことにご注意ください。気持ちがはやると忘れてしまうので、ブランチを作成したことを確認してから翻訳を開始します。なお、2015年12月2日の時点で CakePHP3 系は 3.0 ブランチで進められています。私はこれをチェックアウトして、 3.0 ブランチで翻訳をおこなっています。

翻訳対象ファイルを見つける

翻訳ファイルの拡張子は .rst です。例えば以下はページ URL に該当するファイルになります。

テキストエディタ等でファイルを開き、思う存分翻訳を行ってください。

翻訳中のTips
こまめに commit / push
最低でも作業の終わりには commit と自分のフォークしたリポジトリへ push した方がいいです。翻訳が終わり、ビールを飲みに行った場で PC が壊れると非常に虚しくなります。こまめに github へバックアップを取る感覚で push されると無難です。

不明な構文は過去を参考
初めての翻訳の場合、構文に慣れないかもしれません。私が今まで翻訳してきたファイルの一つを以下に挙げますので、内容を確認して本家にマージされた結果と見比べながら参考にしていただければと思います。私はまだまだ慣れていないので、いつもこのファイルを参考に翻訳を行っています。

生ファイル
公開済ページ

生ファイルを見ると分かりますが、コメント内に原文を残し、次回の本家英文が更新されたタイミングですぐに差分が分かるようにしています。これはCakePHP2系の時に本家コミッターとやり取りした中で確定させた方法のようです。

関係なさそうで重要なもの
改行や :: などが意味を持ちます。英文の最後に「::」があったりするので、見落とさないように慎重に翻訳を進めます。

翻訳後の html ファイルの作成

翻訳ファイルを build する

翻訳に区切りがついたら build します。慣れないうちは 2 パラグラフ程度翻訳したら build すると無難です。思わぬ構文間違いに早めに気づけますので、積極的に build します。仮想サーバに接続して build を実行してください。

html ファイルの場所

下記ファイルを build すると html ファイルが作成されます。

翻訳完了し、本家に反映
github.com の操作で本家に pull request を投げます。私の場合はメッセージに挨拶や今の気分を書いて送っていますが、最低限どのファイルを翻訳したかを記述します。何事もなければすぐに反映されます。

おわりに
今まで、オープンソースは自分以外の誰かが支えるものと思っていました。現に私は CakePHP の開発に携わっていませんし、またプラグインも公開していません。しかし、冒頭で触れたように本家開発者と交流するうちに、彼らは日常業務の合間をぬって開発していることを知りました。
例えばコアコミッターのリーダーは、朝の7時に起きてメッセージややり取りの確認、日中は日常業務をこなして夜7時ごろ帰宅、夜の9時から寝るまで CakePHP にコミットしているとのことでした。まさかオープンソースの開発が余暇の合間とは知らず、自分も何かやりたくなって翻訳を始めました。

翻訳を始めると CakePHP について詳しくなりますし、また、 CakePHP の下層で動いているソフトウェアやアルゴリズムに詳しくなります。すると面白いもので、 CakePHP を通じて言語やフレームワークに縛られない知識が身につきます。これは非常に私にとってプラスでした。

現在、渋谷で毎週集まって翻訳会を行っています。ご興味のある方はお問い合わせよりご連絡ください。