#PoEdit で対象フレーズを検出してくれないときの対処方法

WordPressのテーマやプラグインはGetTextという仕組みを使って多言語を実現しており、テーマやプラグインの作成者だけでなくボランティアによって次々と追加されているようです。

デフォルトは英語で作成されていることが多く、その設定を元に「カタログ」と呼ばれる翻訳ファイルを作成し、所定の場所にセットすることで、閲覧者やWordPressの設定に応じてその言語(および国などのエリア)の翻訳内容で表示されるようになります。この翻訳ファイルを作成するのに、私は「PoEdit」というフリーのアプリケーションを利用しているのですが、あるWordPressテーマ用の翻訳ファイルを作成するのに手間取ったことがありました。

もともと翻訳元だけの「空」の翻訳ファイル(テンプレートのようなもの)がある場合も、バージョンが古いままになっていることが多いので、私はいつも対象ファイルの中にある翻訳箇所をPoEditで検出し、モレているフレーズも拾うようにしているのですが、このときのテーマファイルは元々テンプレートに含まれていたものも含め、ほとんどのフレーズを検出できず、ごく一部だけを取り込むのでした。各ファイルの中をみると、正しく翻訳対象として記述されているのですが、明らかに無視されていました。

うまく読み込めているファイルと比べると、改行コードが異なっていました。

  • 読み込めないファイル:CR
  • 読み込めるファイル:LFまたはCR+LF

そこでうまく読み込めなかったフレーズのあるファイルをすべて「CR+LF」に変換したところ、すべてのフレーズが正しく読み込まれるようになりました。