Poeditの使い方。新規から作成してmoをテーマやプラグインに適用する方法

WordPressで多言語化をおこなうとき、翻訳データが格納されているmoファイルを作成する必要があります。
このファイルを作成するためにPoeditというアプリを使用したので、使い方をまとめてみました。

事前知識

Poeditで使用するために必要な事前知識を挙げておきます。

Poeditで使用するデータファイル

Poeditで使用するデータファイルについて、簡単に説明しておきます。

  • .moファイル
    最終的に作成されるファイル。
    コンピューターが処理しやすいように最適化されているため、メモ帳などで開いて読むことができない。
  • .poファイル
    このデータファイルが最適化されて、.moファイルが作成される。
    このファイルはメモ帳などで開いて、読んだり編集したりできる。

    Poeditを使用するなら必要がない知識ですが、.poファイルのフォーマットについて次の記事に書いておきました。

    多言語化:.poファイルのフォーマットについて調べてみた

  • .potファイル
    .poファイルのテンプレート。
    このファイルをコピーして、.poファイルを作成する。
    第三者が作成したWordPressテーマやプラグインを翻訳する場合、このファイルを入手する必要がある。
    ※Poeditは.poファイルを元にして、他の言語の.poファイル生成できます

PoeditはWordPressのソースコードから翻訳キーワードを抜き出すことができます。
.potファイルが用意されていないテーマやプラグインを翻訳したいときは、ソースコードを用意しましょう。

単数形と複数形

日本語では馴染みがありませんが、他の言語では単数形と複数形というものがあります。
翻訳データファイルは、単数と複数の二通りの翻訳データを格納できます。

WordPressでは _n( 単数形 , 複数形 , 数値 ) などの形式で翻訳されます。

単数形と複数形は、Poeditの初期状態では翻訳を入力できません。
こちらの方法で、設定をおこなう必要があります。

コンテキスト毎の翻訳

一つのキーワードに対して、複数のコンテキスト毎に翻訳データを作成できます。

例えば 'hello' というキーワードがあるとします。
このとき、コンテキストに 'morning' を指定したら 'おはよう''afternoon' を指定したら 'こんにちは' に翻訳する、というような使い方ができます。

WordPressでは _x( キーワード , コンテキスト ) などの形式で翻訳されます。

Poeditのダウンロード

まずはPoeditをダウンロードします。

次のリンク先を開きます。
■Poedit:https://poedit.net/download

使用しているPCに合ったダウンロードボタンを押し、ダウンロードを開始します。
ダウンロードされたら実行して、PCにPoeditをインストールしましょう。

新規作成

インストールしたPoeditを起動します。

Poedit 起動直後

3番目の「WordPressのテーマ・プラグインを翻訳」は便利そうですが、フリー版では使用できません。
残念です・・・

1番目の「新規作成」は、他者が作成したテーマやプラグインで用意されているpotファイルを読み込みます。
potファイルまたは他言語用のpoファイルがある場合は、こちらを使用してファイルを読み込んでください。

次の手順で作業を進めます。

  1. ファイルメニューから、新規を選択します。

    potファイルまたは他言語用のpoファイルがない場合は、新規で作成します。

    Poedit 新規作成

  2. 翻訳の言語を指定します。

    「翻訳が存在しません。何かがおかしいようです。」と表示されていますが、気にしなくて大丈夫です。
    使用できる言語をリスト表示から選択できますが、選択肢が多いので探すのに苦労します。
    文字入力できるので言語の名前を直接入力するか、「ja」などのロケール名を入力しましょう。

    翻訳の言語を指定

    今回は「日本語」と入力してみました。すると「日本語」と「日本語(日本)」の二つの候補が提示されました。
    「日本語」を選ぶと「ja」が、「日本語(日本)」を選ぶと「ja_JP」が適用されます。

    WordPressはロケールとして「ja」が使用されているので、「日本語」を選択します。
    めんどうなら、「ja」と入力しましょう。
    WordPressで使用できるロケール名は、次の記事を参考にしてください。

    WordPress: WordPressで使用できるロケール名一覧を取得してみる

    ロケール名は メニュー:翻訳 > プロパティで、後から変更できます

  3. 保存する

    メニュー:ファイル > 保存 で、保存します。
    poファイルとmoファイルが作成されます。

    WordPressのテーマを翻訳する場合はロケール名(ja.poなど)で保存します。
    プラグインの場合は、プラグイン名-ロケール名(pluginmane-ja.poなど)で保存します

ソースコードからの抽出

翻訳対象のソースコードファイルがある場合は、それらのファイルからキーワードを抽出できます。
次の手順で抽出します。

  1. 設定画面を開く

    メニュー:翻訳 > プロパティ で「翻訳の特性」パネルを表示します

  2. ソースの検索タブを表示する

    ソースの検索パス

  3. パス欄に翻訳対象のフォルダをドロップ
    対象ソースファイルを指定

    ドロップすると、「.」が表示されます。
    対象フォルダ指定結果
    これは「フォルダ内全てを検索する」という意味です。
    フォルダー内のフォルダー(サブフォルダー)も対象となります。

  4. ソースの関数指定

    「ソース中のキーワード」タグを開いて、ソースコードで翻訳をおこなう関数を指定します。

    ソースコードで翻訳をおこなう関数を指定

    初期状態は何も指定されていません。
    ⊞ボタンを押すと行が追加されるので、次の文字を一つ一つ入力します。

    • __
    • esc_attr__
    • esc_html__
    • _e
    • esc_attr_e
    • esc_html_e
    • _x:1,2c
    • _ex:1,2c
    • esc_attr_x:1,2c
    • esc_html_x:1,2c
    • _n:1,2
    • _nx:1,2,4c
    • _n_noop:1,2
    • _nx_noop:1,2,3c
    AFFS Simple Code Viewer
    Copy

    「めんどうです!!」
    という人は、Poeditを保存してpoファイルを作成して、Poeditを終了します。

    作成したpoファイルに次の文字を追加して保存します。

    • "X-Poedit-KeywordsList: __;esc_attr__;esc_html__;_e;esc_attr_e;esc_html_e;"
    • "_x:1,2c;_ex:1,2c;esc_attr_x:1,2c;esc_html_x:1,2c;_n:1,2;_nx:1,2,4c;"
    • "_n_noop:1,2;_nx_noop:1,2,3c\n"
    AFFS Simple Code Viewer
    Copy

    追加する場所は15行目付近です。
    次のようになります。

    • msgid ""
    • msgstr ""
    • "Project-Id-Version: \n"
    • "POT-Creation-Date: 2022-04-13 18:00+0900\n"
    • "PO-Revision-Date: 2022-04-13 18:01+0900\n"
    • "Last-Translator: test <test>\n"
    • "Language-Team: \n"
    • "Language: ja\n"
    • "MIME-Version: 1.0\n"
    • "Content-Type: text/plain; charset=UTF-8\n"
    • "Content-Transfer-Encoding: 8bit\n"
    • "Plural-Forms: nplurals=1; plural=0;\n"
    • "X-Generator: Poedit 3.0.1\n"
    • "X-Poedit-Basepath: .\n"
    • "X-Poedit-KeywordsList: __;esc_attr__;esc_html__;_e;esc_attr_e;esc_html_e;"
    • "_x:1,2c;_ex:1,2c;esc_attr_x:1,2c;esc_html_x:1,2c;_n:1,2;_nx:1,2,4c;"
    • "_n_noop:1,2;_nx_noop:1,2,3c\n"
    • "X-Poedit-SearchPath-0: .\n"
    AFFS Simple Code Viewer
    Copy

    再度Poeditを起動して、poファイルを読み込んでください。

  5. 「コードから更新」する

    メニュー:「翻訳」 > 「ソースコードから更新」 を選択します。

    ソースコードから更新メニュー

    ソースコードが検索されて、結果が表示されます。

    「OK」で確定します。

翻訳の入力

キーワードの抽出が終わると、次のような画面に切り替わります。

翻訳の入力画面

入力したいキーワードを選択して、対訳欄に翻訳を入力します。

翻訳の入力例

複数形入力がある場合の設定

ソーステキスト欄に「単数形」と「複数形」が表示された場合、そのままでは翻訳を入力できません。

ソーステキスト欄に「単数形」と「複数形」

メニュー:「翻訳」> 「プロパティ」で翻訳の特性を開き、翻訳の設定タブを選択します。

「この言語のデフォルトルールに従う」から「カスタム表現を使用」に切り替えて、次の文字を入力します。

  • nplurals=2; plural=n == 1 ? 0 : 1;
AFFS Simple Code Viewer
Copy

カスタム表現の設定

「OK」を押すと、対訳欄に「単数形」と「複数形」の翻訳を入力できるようになります。

「単数形」と「複数形」入力可能

moファイルの作成

メニュー:「ファイル」> 「保存」を選択すると、poファイルの保存と同時にmoファイルを生成します。

moファイルの作成

これで完了です。