自作プラグインを作成後、多言語化させるには翻訳ファイルを用意する必要がありますよね。

作成方法を探すと「Poedit」を使ったやり方が多いのですが、記事が少し古いのか、、、UIなどが違ったりで、、なかなかうまくいかず進めることができませんでした。。

そこで今回は、翻訳含めwordpressプラグイン「Loco Translate」を使用して、翻訳ファイルを作成したいと思います。

 

スポンサーリンク

はじめに

今回やりたいこと

作成した自作プラグインを多言語化させるために、翻訳ファイルを準備します。

wordpressプラグイン「Loco Translate」とは?

Loco Translate – WordPress.org

wordpressの管理画面上から、テーマとプラグインの翻訳をすることができ、保存すると、poとmoファイルを自動で生成してくれるので、簡単に翻訳を行うことができます。

前提条件

※ 翻訳する自作プラグインでの準備
・プラグインフォルダの直下に「languages」フォルダ(多言語化用のフォルダ)を作成する
・プラグインファイルのヘッダー部分にText DomainとDomain Pathを追加する
・言語ファイルの読み込みのため、「load_plugin_textdomain」の追加
・翻訳したいテキスト部分を__(), _e() 関数で英語に変更

手順

主な手順

1. 「Loco Translate」で自作プラグイン(翻訳するプラグイン)を選択する

「Loco Translate」>「Plugins」を開くと、インストールされているプラグイン名の一覧が表示されるはずなので、そこから自作プラグイン(翻訳するプラグイン)を選択して、開きます。

まだ何も翻訳ファイルがない場合、下記のような表示になっていると思います。

2. 設定を変更する

2-1. 「Advanced」のタブをクリックします。

2-2. 「Source file paths」を状況に合わせて変更します。

プラグインの状況に合わせて、「Source file paths」を変更します。

/ プラグインフォルダのルート
 languages/
  - 翻訳ファイル
 editor-inline-code.php

「..」

翻訳ファイルが「languages」フォルダ内のため、プラグインフォルダのルート(一つ上の階層)を指定する方法

「..」で記載するやり方が多かったのですが、今回これだと翻訳する必要のない余計なファイルが多数入ってしまい、「Loco Translate」でスキャンがかかる時に赤字で注意され、続けたらスキャンにえらい時間がかかってしまいました。。

「editor-inline-code.php」

今回は、翻訳したい内容が入っているファイルが、「editor-inline-code.php」というプラグインファイル一つだったため、「Source file paths」の部分に「editor-inline-code.php」と入力しています。

2-3. 保存をして、「Overview」のタブから「Overview」のページへ戻ります。

3. 翻訳元となるpotファイルを作成します。

3-1. 「Create template」をクリックします。

翻訳元となるpotファイルが存在していない場合は、「Create template」と出ているはずなので、クリックして進みます。

すでにpotファイルが存在している場合には、ここが「Edit template」と表示されていると思います。

3-2. そのまま「Create template」をクリックして、potファイルを作成します。

念のため、「scan」と「パス」の部分を確認して、「Create template」をクリックします。

万が一、「2-2.」で設定した「Source file paths」部分の記載が間違っていたりして、スキャンできるファイルが見つからない場合は、「scan」の部分が0ファイルなどになっていると思います。

また、「2-2.」で設定した「Source file paths」部分の記載で、スキャンするファイル数が多い場合は、ここの「scan」部分で、赤字で注意書きが記載されます。

赤字で注意書きされてても、「Create template」でそのまま進めましたが、スキャンにかなり時間がかかっていたので、「2-2.」の「Source file paths」部分で必要なファイルのみ読み込むように指定した方がよさそうでした。

3-3. 翻訳元となるpotファイルが作成されました!

4. 日本語の翻訳ファイルを作成していきます。

4-1. 「New language」をクリックします。

「Overview」のページで、「New language」をクリックします。

下記の表示に変わります。

4-2. 「XX string found in 〜」の部分の確認をします。

翻訳したいテキスト部分を__(), _e() 関数で記載してあると思いますが、スキャンしたファイル内に見つかった__(), _e() 関数部分の数が表示されます。

__(), _e() 関数で記載してあるにもかかわらず、ここが「0」だと、翻訳するテキストが見つかってない状態なので、何かしらおかしい可能性があります。

私は、__(), _e() 関数で記載してあるにもかかわらず、ずっと「0」のままで、しばらく迷走してしまいました。。

__(), _e() 関数で記載してあるにもかかわらず、翻訳するテキストが見つからない場合

まず、Text DomainとDomain Pathやload_plugin_textdomainの部分などの記載が間違っていないか確認します。

次に、__(), _e() 関数の記載してある箇所を確認します。

通常、

__( 'sample text', 'text-domain' ); 

のような形で記載してあると思いますが、

私の場合、

$text_domain = 'text-domain';
__( 'sample text', $text_domain ); 

のような形で、テキストドメイン名を入力する部分を、面倒なので変数で入れてありました。

__( 'sample text', 'text-domain' ); 

のように、テキストドメイン名の部分をちゃんと入力して記載しないと、認識しないようです。。

全て、変更したら、認識して表示されるようになりました!

4-3. 「Japanese」を選択します。

「Choose a language」の「WordPress language」部分で「Japanese」を選択します。

4-4. 翻訳したファイルの保存先を選択します。

「Choose a location」で「Author」を選択します。

今回は、自作プラグイン(こちらから配布する)のため、プラグインフォルダの「language」内に作成されるように、「Author」を選択しました。

第三者のプラグイン等の場合は、プラグインのアップデート時に影響を受けないように、「System」などの方がよさそうです。

4-5. 設定の確認と変更が終わったら、「Start translating」で設定の保存と翻訳を開始します。

5. 翻訳をしていきます。

「4-5.」で「Start translating」をクリックすると、下記のような翻訳画面が出てきます。

一度、閉じた後などにこの画面に来るには、「Loco Translate」>「Plugins」>「該当プラグイン名」でこの画面を開きます。

「Source text」の部分に、翻訳したいテキスト部分( __(), _e() 関数部分)の一覧が表示されます。

ここを選択して切り替えながら、対応する日本語を「Japanese translation」の部分に入力していきます。

6. 翻訳が終わったら「保存」します。

保存ボタンがクリックできるようになっているはずなので、「Save」をクリックします。

なにかしら変更すると、「Save」ボタンが押せるようになるので、こまめに保存をしておきましょう。

「Save」ボタンがクリックされると、保存と同時にmoファイルも自動生成されます。

 

以上で自作プラグインの翻訳ファイルを準備することができました!

プラグインフォルダの「languages」フォルダ内に、必要なファイルが生成されています。

おまけ

「5.」のような翻訳する画面にいるときに、最初の「Overview」などの画面に戻りにくかったので、戻る方法です。

上記のように、プラグイン名の部分をクリックすると、プラグインの「Overview」画面に戻れます。

「Plugins」の方をクリックすると、「Loco Translate」の「Plugins」の一覧画面へ飛びます。

まとめ

「Loco Translate」は、管理画面から操作できるのと、めんどくさそうな翻訳ファイルの作成をしてくれるので、手軽に翻訳できるので重宝しています。

参考にさせていただきました


スポンサーリンク