プログラミング

PHPマニュアルのビルドツール「PhD」が4年半ぶりにアップデート

PHPマニュアルのビルドツール「PhD」が4年半ぶりにアップデートされました。

変更点は多々ありますが、ぼくのユースケースで一番うれしいのは、XHTML版のビルド結果にCSSが適用される点です。

以前のビルド結果は無味乾燥で、公式のPHPマニュアルと印象がだいぶ違うのが気になっていました。

その他の点では、ビルド実行時に出ていた多数の警告がなくなったのもうれしいです。


PhDによるビルドがブラウザでできるようになるツールがあります。ぼくが開発している「phd-ja」です。

さきほどDockerイメージを更新し、PhD最新版が使われるようにしました。よろしければデモサイトを触ってみてください。

ついでに、コンテナのOSをAlpine Linuxに変えることでイメージを軽量化しました。圧縮後のサイズが259MBから130MBに減っています。

Dockerがインストールされている環境であれば、下記のコマンドだけで導入できます。お気軽にお試しください。

docker pull iwamot/phd-ja

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単語だけでもよいので是非!

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