[WP Theme Dev] Poedit を利用した WordPress 自作テーマの多言語翻訳

自作テーマやプラグインを多言語翻訳対応するための情報。

## 翻訳ファイル(POT, PO, MO)

基本的にはテンプレートである POT ファイルから、PO ファイルと MO ファイルを作成する流れとなります。

> – [Localization | Theme Developer Handbook | WordPress Developer Resources](https://developer.wordpress.org/themes/functionality/localization/)
> – [WordPressの多言語翻訳1:POT,PO,MOファイルの理解と作成 | 古松](https://old-pine.net/content/wordpress%E3%81%AE%E5%A4%9A%E8%A8%80%E8%AA%9E%E7%BF%BB%E8%A8%B3%EF%BC%91%EF%BC%9Apotpomo%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E7%90%86%E8%A7%A3%E3%81%A8%E4%BD%9C%E6%88%90)

WordPress のテンプレートファイルに仕込んだ `__( $text, $domain )` のような翻訳関数と対応付けた設定を POT に持たせます。

> – [Function Reference/ 2 « WordPress Codex](https://codex.wordpress.org/Function_Reference/_2)

POT ファイルは [Underscores](https://underscores.me/) のようなスターターキットを利用すれば雛形が用意されているので楽ができます。

> – [_s/languages at master · Automattic/_s · GitHub](https://github.com/Automattic/_s/tree/master/languages)

翻訳についてはスタイルガイドも用意されており、公式に配布する場合には留意が必要そうです。

> – [WordPress の翻訳 – WordPress Codex 日本語版](http://wpdocs.osdn.jp/WordPress_%E3%81%AE%E7%BF%BB%E8%A8%B3)

## Poedit の導入
PO ファイルと MO ファイルの作成には Poedit を利用する方法が良さそうです。
公式サイトからダウンロードできます。

> – [The fastest and most convenient way to translate interfaces — Poedit](https://poedit.net/)

brew install も可能でした。

“`prettyprinted
% brew cask install poedit
“`

Poedit の具体的な導入方法と翻訳関数については、下記が大変参考になりました。
ありがとうございます。

> – [Poeditの使い方 [Wordpressのテーマやプラグインを日本語化(多言語)する方法]](https://tontotakumi.com/web-seisaku/wordpress/poedit/)
> – [自作WordPressテーマの国際化(翻訳)の方法 – Welcart カスタマイズ](https://welcustom.net/internationalize-wordpress-theme/)

### Poedit のライセンス種別

Poedit には、Free と Pro, Pro+ の有料版のライセンスが用意されています。
Pro は現行バージョン v2 の買い切り、Pro+ は年払いのサブスクリプションです。

> – [Pricing — Poedit](https://poedit.net/purchase)
> – [Poedit Pro — Poedit](https://poedit.net/pro)

Pro, Pro+ には翻訳の提案機能が用意されていますので、非英語話者にとってのメリットは大きいと思います。

なお Pro, Pro+ の違いですが DeepL に日本語が対応していませんので、日本人にとっては機械翻訳に Microsoft Translator を利用するか Google Translate を利用するかという点だけになります。

(違っていたら申し訳ないですが)多少翻訳がマシかなくらいの差だと思いますので、私は買い切りライセンスを所有しています。

## Gutenberg 部分の翻訳について

Gutenberg のブロックを自作した場合などは、翻訳ファイルを別途用意する必要があるようです(未検証)。

> フロントエンドではバイナリの mo ファイルではなく Jed と呼ばれる形式の JSON ファイルを用います。この JSON ファイルを @wordpress/i18n のライブラリで読み込むことで、フロントエンドでも翻訳を適用することができます。
>
> [@wordpress/babel-plugin-makepot で pot ファイル(翻訳テンプレート)を抽出する – Qiita](https://qiita.com/KamataRyo/items/91e6e92f0cdb34fd9033)