Poedit の翻訳メモリを活用して、PO ファイルの翻訳を効率化

私は PO ファイル翻訳ツール Poedit をかなり頻繁に使っているのですが、Facebook でふと「Poedit の翻訳メモリの使いこなし方が知りたい」というコメントを見かけました。この機能、便利な割にはあまり活用されていないような気がするので、この機会にブログで説明してみます。

翻訳メモリのメリット

「Poedit には翻訳メモリがある」というのは、私が WordPress 関連の翻訳をする時にこのソフトを使う理由の大きな一つです。翻訳メモリは Translation Memory = TM とも呼ばれていて、労力の節約と訳の統一性を実現してくれるとても素晴らしい機能です。Poedit では過去に登録した翻訳済みファイル内の訳文、または自分が Poedit を使って入力した訳文と全体または一部が一致する項目があれば、その訳を未確定 (Fuzzy) ステータスとしてインポートしてくれます。

翻訳メモリの使い方

この便利さを実感するには、使ってみるのが一番。簡単な使い方は以下のとおりです。

  1. 翻訳済み PO ファイルを用意する
  2. Poedit → 設定」メニューから「翻訳メモリ」タブを開く
  3. ファイルから学習…」ボタンを押して、用意した翻訳済み PO ファイルを読み込ませる
    Poedit 翻訳メモリ設定画面
  4. 翻訳したいファイルを開き、「カタログ」メニューで「翻訳メモリを使って未翻訳項目を埋める…」を選択し、実行
    Translate with tm

基本的にはこれだけです!

次のバージョンの Pro 版では、オンラインの翻訳リソースも翻訳メモリの一部として利用できるようになります (上記スクリーンショットはバージョン1.8beta2)。

翻訳済みファイルについて

翻訳済み項目が多ければ多いほど一致する可能性が高くなります。例えば WordPress の翻訳であれば、オープンソース化されている翻訳ファイルがたくさん存在するので追加しておくのがポイントです。

  • まずは WordPress コアフォルダーの /wp-content/languages/ やプラグイン・テーマに同梱されているものから。
  • さらに WordPress.com の翻訳も入手したい場合は、Current Only の画面で左下にある Export リンクをクリック。
多ければ良いと言っても用語やスタイルの統一のため、あまりにも関係なさすぎるプロジェクトのファイルは追加しないほうが良いです。また、自動翻訳のみなど翻訳の質が低いファイルを足しても未確定項目のレビューの労力が増えてしまいます。

Tips

  • 「翻訳メモリを使って未翻訳項目を埋める…」の画面で、まず「完全な一致のみ採用」と「完全な一致を未確定としてマークしない」にチェックを入れて未翻訳項目を埋めます。こうすると完全一致の項目は未翻訳にならないので少し手間が省けるかも。
  • Pro 版ならオンライン翻訳メモリに翻訳を提供しておくと、同じ原文で2つの意味がある場合などに両方を候補として選べるようになるなどたくさん利点があります。

一点残念なところは、翻訳メモリ全体はエクスポート・インポートできないこと。使えば使うほどメモリが充実してくるのはいいんですが、たまにデータが破損したりすることもあるので、必ず追加したい翻訳済みファイルはバックアップを取っておいたほうがいいかもしれません。

WordPress プラグイン・テーマ翻訳: Poedit 無料版で新規 POT ファイルを作成する

今月開催の WordBench 地域合同企画「春の翻訳&ドキュメンテーション祭り」向け、WordPress プラグイン・テーマ翻訳シリーズ第2弾です。

前回の「2014年版: WordPress プラグイン・テーマの翻訳を始めてみよう」記事最後で「Poedit の無料版を使って翻訳部分を抽出する方法については別途書きます」としていたのですが、その部分を説明したいと思います。以下はプラグインの例ですが、テーマでもほぼ同様に進められます。

Blank WordPress Pot から POT ファイルを作成する

  1. Blank WordPress Pot をダウンロードします(右下の「Download ZIP」をクリック)。
  2. ここで実際に必要なのは、Blank-WordPress.pot のみです。この POT ファイルの名称を plugin-textdomain.pot(例: Contact Form 7 なら wpcf7.pot)に変更します()。
  3. POT ファイルをプラグインの /languages/ ディレクトリ内に移動します。
  4. 移動したファイルを Poedit で開くと、以下の画面が表示されます。
    Poedit での POT ファイル作成
  5. 下の「ソースから抽出」をクリックして出てきたダイアログで「翻訳の設定」タブに移動します。プロジェクト名(プラグイン名とバージョン)や翻訳チーム情報(チームがなければ自分の情報でも)などを編集しましょう。
    Poedit カタログの設定
  6. ダイアログの「OK」をクリックすると、更新した POT 内容の確認が表示されます。問題なければ再び「OK」をクリック。
    POT 更新ダイアログ
  7. これで POT ファイル生成は完了です。このファイルは翻訳せず、そのまま保存しましょう。その際に生成される plugin-textdomain.mo ファイルは必要ないので削除します。

POT ファイルはあくまでも翻訳用テンプレートなので、ここには日本語訳を含めません。翻訳するファイルは別途、この POT ファイルを元に plugin-textdomain-ja.po を作成する必要があります(前回の「用意された POT ファイルを使う」を参照)。

Blank WordPress Pot では、i18n Tools で抽出できるものと同様に15の国際化関数がカバーされています。

ソース中のキーワード

前にも書いたとおりプラグインヘッダー内のプラグイン名・プラグイン説明は現在 Poedit では抽出できないので、その点だけは注意しましょう。

※ plugin-textdomain が不明な場合

プラグインの Text Domain はプラグインヘッダーに書かれている場合もありますが、もしなければ load_plugin_textdomain という関数をプラグインファイルから探しましょう。その一つ目の引数がテキストドメインです。Contact Form 7 の例:

function wpcf7_load_plugin_textdomain() { load_plugin_textdomain( 'wpcf7', false, 'contact-form-7/languages' ); }


P.S. 前回の記事に、Grunt と Codestyling Localization を使った方法も追記しました。

WordPress プラグイン・テーマ翻訳対応を強化した有料版 Poedit Pro を使ってみました

愛用している PO ファイル用翻訳デスクトップアプリ、Poedit がバージョン 1.6 になり、有料版「Poedit Pro」が出たということで早速試してみました。WordPress プラグイン・テーマの翻訳への対応が強化されているということもありますが、普段お世話になりまくっていて $19.99(日本円では2,125円でした)なら払わない理由がないという感じです。

Poedit アプリのアイコン

Poedit Pro にアップグレードすると、スタート画面の下の方にある「Translate WordPress theme or plugin」を選択できるようになります。

Poedit Pro 1.6.1 のスタート画面

クリック後ファイル選択のダイアログが開くので、プラグイン ZIP ファイルを解凍した状態のフォルダを選んでください。翻訳可能な状態のプラグインの場合、以下のようなダイアログが表示されますので、下の方のダイアログを確認し「OK」をクリックします。

Poedit Pro プラグイン翻訳が成功した場合

この後は通常通り翻訳を進めるだけ。ファイル保存の際にはちゃんと plugindir-ja.po / plugindir-ja.mo のように WordPress 自動的に対応の名前をつけてくれます。

もしプラグイン自体がきちんと国際化対応していない場合は以下のようなダイアログが出ます。有料版の特典のひとつにサポートも含まれているとはいえ、「解決するよう手伝うので、Poedit のヘルプにメールしてね!」って書いてあるのがちょっと驚き。アドバイスをくれるのか、プラグイン作者さんと一緒に解決するのか。どこまでサポートしてくれるのかちょっと気になります。

Poedit のプラグイン翻訳不可エラー

自分で解決してみよう、という方は “View Log” ボタンをクリックすると役立つ情報が表示されます。以下がログの例です(詳細は実在しないプラグインに置き換えました)。

Please email this log to help@poedit.net. Thank you!

WordPress error: The "Plugindir" plugin isn't localization-ready.
Name: 'Plugindir'

Log:
16:46:04: Analyzing WP directory /plugindir
16:46:04: not theme - lacks style.css
16:46:04: in /plugindir/plugin.php: no matches for "load_plugin_textdomain\s(\s'"['"]\s*, "
16:46:04: in /plugindir/plugin.php: found "(^|\s+)Plugin Name:\s(.)$" = "Plugindir"
16:46:04: *** /plugindir/plugin.php is the main plugin file
16:46:04: in /plugindir/plugin.php: no matches for "(^|\s+)Text Domain:\s(.)$"
16:46:04: in /plugindir/plugin.php: no matches for "(^|\s+)Domain Path:\s(.)$"
16:46:04: no load_plugin_textdomain call and lacking metadata

このプラグインの場合、エラーは「load_plugin_textdomain(関数)が見つかりません」とか、「Textdomain のメタデータがないよ」とか。他にも、「/languages/ フォルダがないよ」というエラーが出るものもありました。

最近の公式ディレクトリ掲載テーマだと国際化対応していないものはないのでかなり使えるのではないでしょうか。自動的にすべての問題を解決してくれるわけではないのでプラグインに関して言えば利用できるものが限られますが、問題部分をすばやく突き止められるのはかなり便利です。

有料アップグレードではもうひとつの追加機能としてファイルの情報表示(Stats)というものもあります。未翻訳項目の数など無料版でも画面の左下に出てくる情報がほとんどではありますが、ソース言語内のワードカウントとかは外部翻訳を注文するときの見積もりなんかに地味に便利なんじゃないでしょうか。

Poedit ファイルの詳細情報画面

PO ファイルはテキストエディタでも翻訳できるし、今は WordPress コアの翻訳は GlotPress へ完全移行したのですが、日々けっこう大量に WordPress 関連の訳をやっていると翻訳メモリ機能がある Poedit がやっぱり便利です。引き続き Mac/Windows 版ともに無料版の提供も続けていくとのことですが、各種 OS バージョンへの対応、機能強化、エラーの改善などすごくがんばってくれている作者さんなので、有料版の方も応援していきたいです。