Meaningless Notebook

我輩は雑記帖である。名はまだない。


Create Gutenberg Block で作ったブロックに翻訳を反映させるのにてこずった備忘録。

翻訳したプロジェクト

https://github.com/Angelmaneuver/sketchpad-modified-blocks

Create Gutenberg Block で作成した Gutenberg ブロックプロジェクト。

プラグイン形式で WordPress へ複数のブロックを追加する。

注意点は

  • WP-CLI (wp i18n を使用、gettext の msginit 等は使わない) が必要
  • Create Gutenberg Block はビルドすると 1 つの JavaScript になるので翻訳対象はビルド後の JavaScrpt ファイル

翻訳手順

1.POT ファイル生成

下記コマンドを実行して POT ファイルを生成する。

*

翻訳する Create Gutenberg Block がビルド済みである事

wp i18n make-pot . ./languages --allow-root --include=dist/blocks.build.js

2.PO ファイル生成→翻訳記載

コピ-コマンドで POT ファイルから POファイルを生成して翻訳する。

*

WordPress の 公式ガイドの手順がコピ-となっている

3.JSON ファイル生成

下記コマンドを実行して po ファイルから json ファイルを生成する。

*

po2json は使用しない事 (出力結果が異なる)

wp i18n make-json PO ファイルパス --no-purge --allow-root

4.JSON ファイル取捨選択

複数の json ファイルから ファイル中の source が下記となっている json ファイルを探し、それ以外は削除する。

{"translation-revision-date": 〜 ,"source":"dist\/blocks.build.js"

5. JSON ファイル名変更

ファイル名を ${text-domain}-${locale}-${handle}.json 形式に変更する。

6.wp_set_script_translations メソッド呼び出し追加

Create Gutenberg Block プロジェクトの 『src/init.php hogehoge 〜 _block_assets メソッド』に wp_set_script_translations メソッド呼び出しを追加する。

wp_set_script_translations(${text-domain}, ${handle}, 翻訳 json ファイルを格納しているディレクトリパス );

参考元

Amazon