プラグインの国際化(英語-日本語の翻訳表示対応)では、.moファイルという翻訳ファイルが必要になりますが、poedit を使えば簡単に作成できますね。
(面倒なのは実際の翻訳だけで、poeditの操作自体はいたってシンプルで簡単です)
ここでは自作したプラグイン(More Tag Auto Insert)を例にして、poedit の使い方、.pot, .po, .moファイルの作り方を解説しています。
国際化(翻訳化対応)の全体像は以下を見てみてください。
⇒プラグインの国際化(英語-日本語対応)!
テキストドメインの指定から翻訳ファイルの作成まで
Contents
poeditのインストール
Poedit をまだインストールしてない場合には、以下で行っておきましょう。
まずは以下からPoedit公式サイトのダウンロードページへアクセス。
↓↓↓↓↓↓
ダウンロードページから Windows または Mac 版をダウンロード。
ここでは Windwos版で進めていきます。
↓↓↓↓↓↓
ダウンロード自体はすぐ終わり。
- ① Poedit-xxxx.exeがダウンロードされるので、そちらをクリック!
↓↓↓↓↓↓
早速インストールが始まります。
最初は使用許諾の同意から。
- ①:「同意する」をクリックで選択
- ②:「次へ」をクリック!
↓↓↓↓↓↓
続いてインストール先の指定。
何か理由がない限り特に変更は不要だと思います。
- ①「次へ」をクリック!
↓↓↓↓↓↓
以上でインストールの準備が完了!
- ①「インストール」をクリック!
↓↓↓↓↓↓
実際のインストールが開始されます。
↓↓↓↓↓↓
インストール自体はすぐ終わり。
- ①「完了」をクリック!
「インストール後にPoeditを開く」にチェックが入っているのですぐPoeditが起動します。
Poedit を使う上での予備知識
プラグイン(やテーマ)の国際化対応(翻訳対応)する場合、.pot, .po, .mo の3つのファイルが必要とか説明がありますが、まず .pot と .po, .mo の関係を理解しておくと Poedit の操作も理解しやすくなると思います。
私は .pot が何者かが良くわかってなかったので、
Poeditの出だしで物凄くつまづいてしまったのでした ^-^;)
- .potファイル:翻訳の元となるテンプレートファイル(テキストファイル)
- 翻訳対象の文字列が抽出されているだけのファイル。
- このファイルを元に、日本語なら日本語の翻訳を付けていく( -jp.poファイルを作る)みたいな、いろいろな言語の翻訳をする場合の元となるファイル。だからテンプレートと呼ばれる。
- この.potファイルは Poedit で作った .po ファイルをちょっと編集すれば作成できるが、無くても良い
- .poファイル:テンプレートに対して翻訳を付けたファイル(テキストファイル)
- .potファイルを元に日本語なら日本語の翻訳を追加したファイル。
- Poeditは PoEdit という名からも想像できるように(.potテンプレートファイルを元にして) .poファイルを作成、編集するアプリ。(.potファイル中にある翻訳対象の文字列に日本語なら日本語の翻訳を付けたりするためのアプリ)
- そのためPoeditを立ち上げると、元となる.potファイルの作成から始まるのではなく、いきなりテンプレートである.potファイルからを更新、みたいなメニューアイコンが出始めの画面に出ていたりする。(なぜにそうなっているのかが最初全然わかりませんでした ^-^;))
- Poeditでは、.potファイルがなければ .po から作成でOK。
- .moファイル:ワードプレスが理解するための翻訳ファイル
- 翻訳を付けた .po ファイルをワードプレスが理解できるように変換したファイル。
- プラグイン(やテーマ)で国際化を図る場合、最低限このファイルがあればOK。
- Poeditで .po から .moファイルへ変換して作成できる
.pot, .po, .mo と3つのファイルがありますが、簡単に見れば以下のようになりますね。
- .pot:翻訳対象の文字列を抽出したファイル(テンプレート)。無ければ無いでOK。
- .po:.potに対して翻訳がつけられたファイル(Poeditで作成する)
- .mo:.poをワードプレス用に変換したファイルで最低限これだけあればOK(Poeditで作成する)
プラグインをワードプレスの公式プラグインディレクトリに登録して誰かが各国言語の翻訳を付けてくれることを期待する場合には .pot を付ければよいし、.potがなくても .poファイルがあればその中にある日本語訳をその国の言語に差し替えれば翻訳対応もできるので、.poファイルを付けておけば良いですね。
別に他の国の翻訳などは考慮しなくてよい、ということであれば、.mo ファイルだけでも良さそうですが、念のためということで、.pot, .moの2つを付けておく、というのが良さそうです。
【Poedit のポイントまとめ】
- .potファイルが既にある場合:
⇒ それを元に .poを作って .moファイルに変換保存する - .potファイルがない場合:
⇒ .poファイルを新規に作り .moファイルに変換保存する
では Poedit の使い方を見ていきましょう。
poedit の使い方
自作のプラグインを作り翻訳対応をする場合(つまり .potファイルが存在しない場合)を想定して以下 Poedit の使い方を見ていきます。
まずはPoeditの起動から。
Poeditを起動すると上の画面が表示されますが、
まずここからの流れを簡単に見ておくと以下3つの手順になりますね。
- 手順1)新規に .po ファイルを作る
- potファイル(テンプレートファイル)を作りたい場合には、翻訳を付ける前の .po ファイルを一旦保存して、余計なヘッダ情報を削除し拡張子を .pot にする
(これで .pot ファイルの作成ができる)
- potファイル(テンプレートファイル)を作りたい場合には、翻訳を付ける前の .po ファイルを一旦保存して、余計なヘッダ情報を削除し拡張子を .pot にする
- 手順2)翻訳対象の文字列を③の所に関数名などを1項目1項目入力抽出する
- 手順3)日本語翻訳を入れて .mo ファイルを作成
では1から順に進めていきましょう。
手順1)新規に .po ファイルを作る
まずは「ファイル」⇒「新規」から.po ファイルを作ります。
- 「ファイル」⇒「新規」を選択!
↓↓↓↓↓↓
何かがおかしいようです、と表示されますが(笑)
気にせず「翻訳の言語」で日本語を選択。
- ①:「日本語」を選択
- ②:「OK」をクリック!
↓↓↓↓↓↓
特に何もせず、一旦保存をします。
(この保存をしないと、phpソールから翻訳対象の文字列を抽出する、
といった操作ができないようになっているので)
- 「保存」をクリック!
※)「ファイル」メニューから「保存」や「名前を付けて保存」でもOK
↓↓↓↓↓↓
保存先は、プラグインフォルダの「languages」フォルダ。
(ここでは「jin-more-tagu-auto」というプラグインフォルダの中の
「languages」フォルダを例として指定。
保存したファイルを後からそちらに移動しても勿論OK)
②のファイル名は最初「jp.po」となっていると思います。
これを「テキストドメイン」+「-」+「jp.po」という形にしておきます。
※)ここでは「jin-more-tag-auto」という文字列をテキストドメインとしている例
テキストドメインは翻訳ファイルをロードするための
load_plugin_textdomain()関数で指定する文字列になります。
例)
load_plugin_textdomain( 'jin-more-tag-auto' , false, basename( dirname( __FILE__ ) ) . '/language' );
この例では「jin-more-tag-auto」がテキストドメインで、
基本的にはプラグインフォルダ―の名称を使います。
より詳しくは以下を見てみてください。
⇒プラグインの国際化(英語-日本語対応)!テキストドメインの指定から翻訳ファイルの作成まで
手順2)翻訳対象の文字列抽出
.poファイルを保存したら、
つづいて翻訳対象の文字列を以下の操作で抽出します。
- ①「翻訳」から「プロパティを選択」
↓↓↓↓↓↓
翻訳の設定
最初に「翻訳の設定」。
- ②の「プロジェクト名とバージョン」:
プラグイン名称や必要に応じてバージョンとかを入れておく - ②の「言語チーム」:
ニックネームや名前とかを入れておく
この「プロジェクト名とバージョン」「言語チーム」は、.poファイルのヘッダ情報に入ります。
入力しなくても特に問題ないはない。
↓↓↓↓↓↓
検索パスの設定
続いて「ソースの検索パス」の設定。
- ①:「ソースの検索パス」のタブを選ぶ
- ②:翻訳対象のファイル(_e() とか __() が含まれているphpファイル)が含まれているフォルダを「パス」の所にドラッグアンドドロップ!
以下のように「ベースのパス」の所に、対象フォルダのパスが表示されればOK。
↓↓↓↓↓↓
キーワードの設定
最後は「ソース中のキーワード」の追加設定。
ソースファイル(phpファイル)中で翻訳対象を指定している関数を追加しておきます。
- ①:「ソース中のキーワード」タブをクリック
- ②:「+」マークをクリックで、
③の所に翻訳文字列を指定している関数名などを「追加キーワード」として1項目1項目入力
全て終わったら④「OK」をクリック!
ここでは「追加キーワード」として _e(), __(), _n() を追加してますが、
他にもあれば追加しておきましょう。
これらを指定することで、以下のように「phpソースの中で翻訳対象としている文字列」をPoeditが全て自動で抽出して読み込んでくれます。
↓↓↓↓↓↓
翻訳対象の文字列抽出
以上が終われば、いよいよphpのソースコードから対象文字列の抽出をします。
- ①「翻訳」⇒②「ソースコードから更新」をクリック!
↓↓↓↓↓↓
ここで一旦ファイルの保存をしてね、
と出るので保存しておく。
- 「保存」をクリック!
↓↓↓↓↓↓
続けて「翻訳をアップデートしている」旨の表示がされ、
ソースコードから翻訳対象の文字列の抽出が開始されます。
(しばし待つのだ)
↓↓↓↓↓↓
文字列の抽出が終わると、以下のように一覧が表示されます。
これでまず翻訳対象の文字列のみが抽出されました。
一旦ファイルを保存しておきましょう!
この時点の .poファイル
この時点では「翻訳対象のみが抽出された .poファイル」ができます。
また Poeditの設定に従って .mo ファイルも自動で作成されます。
↓↓↓↓↓↓
実際フォルダを見てみると、以下のように2つのファイルがありますね。
補足).potファイルの作り方
この時点の.poファイルをテキストエディタ(ここで使ってるのは notepad ++)で見てみると以下のようになってます。
先頭の①はヘッダ情報。
最初に「翻訳」⇒「プロパティ」で設定した「プロジェクト名とバージョン」、「言語チーム」の情報や言語、作成日などの情報が記載されてます。
このヘッダ情報の下には以下の形で翻訳対象の文字列が抽出されてます。
- #: コメント)抽出元のファイル名と抽出した行番号
- msgid:翻訳対象として抽出した文字列
- msgstr:翻訳(対訳)の文字列(まだ翻訳してないので全て空文字になっている)
テンプレートとなる.potファイルを作るには、以下をしておけばOK。
・メモ帳などのテキストエディタで .po ファイルを開く
・先頭のヘッダ情報(①)を削除して保存
・拡張子「.po」を「.pot」に変えておく。
ちなみに、この時できた .moファイルはまだ翻訳が入っておらず
特に必要ないので削除しておいてもOK。
手順3)翻訳と.moファイルの作成
後は抽出された文字列に対して1つ1つ日本語翻訳を入れていくだけ。
- ①:翻訳対象の文字列
- ②:上段で選択している行の文字列が表示される
- ③:下段「対訳」の箇所に日本語翻訳を入れていく
- ④:「対訳」箇所に入力した文字列が表示される
この対訳を必要なだけ行いファイルの保存をすれば、.po、.moファイルが作成できます。
【補足】
Poeditの初期状態では
.poファイルの保存時に .moファイルが自動で作成されるようになってます。
メニュー「ファイル」⇒「設定」⇒「一般」の「保存する際にMOファイルを自動コンパイル」に初期状態でチェックが入っているので、.poファイルを保存すると自動で .moファイルも作成されるんですね。
↓↓↓↓↓↓
途中途中で保存すれば、
その時点での .po、.moファイルが上書き保存されてとっても楽チン。^-^)
翻訳する文字列が多く .poファイルの保存時に時間がかかる場合には、ここのチェックを外しておき、必要に応じて「ファイル」⇒「moにコンパイル」を使えばよいですね。
編集を再開する場合
.poファイル(と .moファイル)を保存して一旦作業を終了した後に再開したい場合は、.poファイルを直接ダブルクリックして始めればOK。
↓↓↓↓↓↓
.poファイルをダブルクリックでPoeditが立ち上がり、
前回保存時の状態から編集を再開できます。
エラーメッセージの対応
翻訳(対訳)を追加している中で、
注意マークみたいなものが表示される場合がありますね。
①の工事中マークみたいなマーク箇所に対して、②に「対訳に何か問題ありそうだけど良いですか?」みたいなメッセージでお知らせしてくれます。
上の例では、翻訳対象の文字列に対して、対訳が英字の小文字で始まることから、「翻訳は文章から始まる必要があります」とかお知らせがでています。
この場合、more を More に直せばメッセージは出なくなりますが、このままの方が良い、という場合にはこのままでもOK。
他にもメッセージが出る例としては、翻訳対象の文字列の最後がピリオド( . )で終わっているのに対訳の文の最後が「。」で終わってないと、「翻訳は "."で終える必要があります」とか教えてくれます。
その場合には対訳の最後に句点(。)とか付ければOKですし、もちろんこのままの方が良い、という場合にはそのままでもOK。
ソースに変更があった場合
phpソースに新たに翻訳対象の文字列が追加されたり、すでにある翻訳対象の文字列に変更が入ったりした場合には、「ソースコードから更新」を改めて行えばOK。
- ①「翻訳」⇒②「ソースコードから更新」をクリック!
↓↓↓↓↓↓
新たにソースコードから翻訳対象の文字列が読み込まれ、
変更のあった個所はオレンジ色で表示されます。
翻訳対象の文字列に変更の入ったオレンジ色の箇所は、対訳も修正する必要があるか確認し、新規に翻訳対象の文字列が追加された場合には、まだ「翻訳-日本語」の欄が入ってないので対訳を入れていきましょう。
今回のポイント
Poedit は、出だしが少し戸惑いますが(って私だけ?^◇^)ゞ)
一旦翻訳作業まで進められれば、操作は非常に簡単です。
最初 .pot(テンプレートファイル)から始めると思い込んでいたので、ワードやエクセルなどの新規作成同様、何か真っ白な画面から始まるはず、なんて想像してると、私と同じように出だしで少しはまりそう。
Poedit は、.potが既にあればそれを読み込んで進めるし、.pot がなければ .poファイルの作成から進める、というアプリですので、そこさえ分かってしまえば、操作の理解も早いですね。
プラグイン作成や翻訳以外に、ネットビジネスでの収益の上げ方やブログの収益化については、以下のメルマガで見てみてくださいね。