プログラミング

Bootstrap ドキュメント翻訳の進捗

Bootstrap ドキュメントの翻訳に着手してから1ヶ月弱になります。これまでの進捗をご紹介します。


Bootstrap 4.1.3 への追随

Bootstrap 4.1.3 が先日リリースされたのを機に、翻訳対象を 4.0.0 から 4.1.3 に変更しました。

とはいえ、4.0.0 の日本語訳も参照できるように残しています。

件数ベースで65%まで翻訳が進んでいるのと、過去バージョンのドキュメントを参照したくなることもあるだろうからです。

時間はかかりますが、どちらも100%にするつもりで取り組んでいます。参加者は引き続き募集中です。

ちなみに今のところ、Netlify のブランチデプロイ機能でドメインを分けています。本家ドキュメントは同じドメインで運用しているので、合わせたほうがきれいなのかもしれません。この辺はおいおい考えます。


Transifex のおすすめ設定

Transifex で翻訳を進める場合、「翻訳メモリによる自動翻訳」を有効にするのがおすすめです。

有効にすると、複数のページに登場する文章が自動的に翻訳されるようになります。翻訳に着手後、しばらくしてからこの機能の存在に気づき、作業のスピードが格段に上がりました。複数バージョンの翻訳を進めるのにも重宝します。

Bootstrapドキュメントの翻訳準備で試行錯誤した点(翻訳者募集中!)

先日はじめた Bootstrap ドキュメントの日本語訳について、数日の試行錯誤を経て、トップページの翻訳が終わりました。

この記事では、何をそんなに試行錯誤することがあったのか、ご紹介します。また、最後のほうには翻訳者募集のご案内もあります。

Jekyll ビルド用のソースファイルが Transifex でうまく翻訳できない

まずハマったのが、翻訳プラットフォームの Transifex 上で、Liquid 形式のテンプレートと Markdown ファイルがうまく翻訳できない点でした。前者は、HTML として見れば正しいマークアップになっていないため、Transifex にアップロードするだけでファイルが壊れてしまいます。後者は、翻訳したい行が英文として認識されず、翻訳対象外となってしまうことがありました。

乗り換えられそうな翻訳プラットフォームがあるとよいのですが、今のところ見つかりません。なので、このまま Transifex を使うしかない状況です。

解決策として、ビルド後の HTML ファイルを Transifex にアップロードすることにしました。ビルド後ならマークアップが正しくなるので、アップロードしても壊れません。

ただ、別の問題が起こりました。

翻訳前にビルドすると、複数ファイルに同じ英文が散らばってしまう

Bootstrap のドキュメントでは、_data や _includes、_layouts といったディレクトリに共通ファイルが置かれています。これらを翻訳せずにビルドすると、生成される多数の HTML ファイルに同じ英文が散らばってしまうのです。

こればっかりは仕方がないので、共通ファイルだけは、Transifex を使わずにローカル環境で翻訳することにしました

ちなみに一部の共通ファイルでは、テンプレートのロジック自体に手を入れる必要がありました。翻訳したい英単語がファイル名と連動しており、ただ翻訳してしまうとリンク切れを起こしてしまうためです。

そういった対応を経て、ようやく生成後の HTML ファイルが Transifex で翻訳できるようになりました。ここまでの手順をまとめると、下記のようになります。

Transifex で翻訳できるように準備した手順

  1. locale/en に、サブモジュールの bootstrap にあるドキュメント関連ファイルをコピー
  2. locale/ja に locale/en をコピー
  3. locale/ja 内の共通ファイル(_data/*、_includes/*、_layouts/*)を手元で翻訳
  4. locale/ja 内のソースを Jekyll でビルド
  5. locale/ja/_gh_pages に生成されたHTMLファイルを Transifex のプロジェクトに push
その後、Transifex 上でトップページを翻訳し、下記の手順で Netlify にデプロイしました。

翻訳後のトップページを Netlify にデプロイした手順

  1. Transifex 上でトップページを翻訳
  2. translations/ja/index.html に、翻訳済みファイルを pull
  3. コミットし、GitHub に push

GitHub に push すると自動デプロイされるように Netlify を設定しています。

あとは、残りのページでもこの 1〜3 を繰り返していけば、翻訳完了となります。

翻訳者募集のご案内

未翻訳のページは101ページもあります。もしご協力いただける方がいらしたら「bootstrap-docs-jaの多国語化」よりご応募ください。GitHub の README(未作成)に Contributor として掲載いたします。翻訳完了時には、オフィシャルの英語版ドキュメントから日本語版ドキュメントにリンクしてもらうよう依頼予定です(リンク掲載ページ)。

ご不明な点がありましたら、Twitter 等でお知らせください。流れは「documentation / 翻訳への参加方法 / TransifexでのDjangoドキュメント翻訳の進め方 | djangoproject.jp」と同じです。1単語だけでもよいので是非!

Bootstrapドキュメントの日本語訳に着手したのは

Bootstrapドキュメントの日本語訳に着手しました。翻訳が完了したのはトップページのコンテンツのみです(ヘッダとフッタは未着手)。今は https://bootstrap-docs-ja.netlify.com/ で公開していますが、首尾よく進めば独自ドメインで運用するかもしれません。

着手したのは複数の理由によります。

  1. 継続的にメンテナンスされている日本語訳がなかったから
  2. OSSの翻訳の仕組みについて理解を深めたかったから
  3. 「鶏口牛後」を試してみようと思ったから

1. 継続的にメンテナンスされている日本語訳がなかったから

Bootstrapドキュメントには、継続的にメンテナンスされている日本語訳がありません。想像するに、翻訳者側が翻訳の仕組みを整えなければならないからだと思います。ドキュメントには下記のように書かれています。

We don’t help organize or host translations, we just link to them.

https://getbootstrap.com/docs/4.0/about/translations/

翻訳の組織化やホスティングにはコミットしないということですね。それ自体は開発者の判断によるものなので、良いも悪いもありません。

2. OSSの翻訳の仕組みについて理解を深めたかったから

このようなドキュメントに対して、継続的に日本語訳を提供するにはどういう仕組みを整えるべきなのか。その点に関心があります。

特定バージョンのドキュメントだけを訳せばよいのなら、力業でなんとかなりそうです。が、Bootstrap の開発が進めば、当然、ドキュメントも更新されていきます。

その点を踏まえて、下記の構成で翻訳を進めることにしました。

  • GitHubリポジトリ:Bootstrap のリポジトリをサブモジュールにしています。更新を取り込みやすくするのが目的です
  • Transifex:翻訳プラットフォームのひとつです。CLI で翻訳リソースを送受信できます
  • Netlify:コンテンツのホスティング先です。Jekyll でのビルドもしてくれるので便利です

Transifex も Netlify も、GitHub のブランチを指定して作業できます。なので、翻訳元が更新されても論理的には追いかけられるはずです。

本当にこの構成で日本語訳を継続的に提供できるのかどうか、作業を続けながら見極めていきたいと思っています。

3. 「鶏口牛後」を試してみようと思ったから

最近、まつもとゆきひろさんが若手ITエンジニア向けの講演会で「鶏口牛後を意識しよう」とおっしゃっているのを知りました。大集団の末端にいるよりは、小集団の長になろうということですね。

すでに若手でないぼくは、ずっと牛後を好んできたのですが、まつもとさんがおっしゃるからには、鶏口を試してみる価値はありそうだと思うようになりました。そんなとき、Bootstrap ドキュメント日本語訳に決定版がないことを知ったのです。「これは鶏口のチャンスだ!」と思いました。もろもろ整理できたら、翻訳に参加していただける方を募ろうと思っています。

といっても、PHP や Django のドキュメント翻訳をやめるわけではありません。人生は一度きり、気になったらあれこれ試してみるのが性分なのです。どれも実を結ばない可能性も大いにありますが、それもまた人生でしょう。

プロフィール
知識欲と謎解き欲が旺盛なWebエンジニア。AWS認定ソリューションアーキテクト&デベロッパー(いずれもアソシエイト)。JAPAN MENSA会員
カテゴリ別アーカイブ
記事検索