月別アーカイブ: 2017年09月

1 post

WordPress プラグインの日本語化 2

WordPressやテーマやプラグインは頻繁に更新されます。
HPを閲覧している人には関係ないのですが、問題は、開発者が接するテーマやプラグインのメニューや説明部分です。

WordPress自身は日本語化されていますので、新たな手間は必要ないのですが、テーマやプラグインの更新は、古いフォルダーをそっくり削除して、新しいソースに入れ替えますから、せっかく作った日本語ファイルは跡形もなくなり、メニューや説明部分は全て英語の記述になります。

更新があるたびに、Poeditでメッセージに日本語を付けていくのは、負担になり面倒です。

一つの解決策は、以前作成した[po]、[mo]ファイルを、元あった場所にアップすればいいのですが、プラグインが大きく変わった時は古い翻訳は役に立ちません。

最新のプラグインソースを基にPoeditを使って、英語のメッセージファイル(po)を自動で作成するか、プラグインによっては、訳がついていない英語のdefault.poというファイルがありますので、これに以前の翻訳を可能な限り自動で埋め込み、後はPoeditで訳を補足していくという方法を考え、そのためにプログラムを書くことにしました。

翻訳対象は最新の[po](default.po)で、埋め込むのは古い[ja.po]ファイルです。

[ja.po]ファイルは実は次のようになっています。

#: core/class-fire-prevdem.php:285 core/init-base.php:267
msgid “”
“Many layout and design options are available from the WordPress customizer ”
“screen : see your changes live !”
msgstr “”
“様々なレイアウト,デザインオプションがWordPressのカスタマイズ画面にありま”
“す : その場で変更を確認!”

[default.po]には[msgstr “”]だけで、翻訳(日本語訳、上の例で[“様々なレイアウト,…])がありません。
[default.po]の[msgid] に対応する部分を[ja.po]から探し出して、[ja.po]の[msgstr]部分を [default.po](実際には出力用に新たな別ファイル)の[msgstr]に、埋めていくことになります。

新たな[default.po]を自動で翻訳しきれなかった部分は、Poeditを使って翻訳していきます。

VB.NETでプログラミングしました。
多少使い勝手をよくして500行弱のプログラムです。

取り敢えずこれで良しとします。