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 ファイルを格納しているディレクトリパス );