プラグインの翻訳をして作者に送ってみよう! #wacja2012
Posted by admin at 16:37 日時 2012/12/15
今日は翻訳ネタ。WordPressのプラグインを日本語化する方法と、せっかく翻訳したら作者に送ろうよ、という話。
この記事は WordPress Advent Calendar 2012 に参加しています。明日はよつばデザイン後藤さんの記事です。
WordPressプラグインを日本語化する
今回翻訳するのはUltimate TinyMCEプラグインです。このプラグインの現在のバージョンをインストールすると、設定画面はこのように日本語と英語が混じって表示されます。実はこの日本語も私が一部翻訳しています。新しいバージョンで追加された英語が、翻訳されずに表示されているというわけです。
これを翻訳していくわけですが、まず言語ファイルをダウンロードしてきます。
サーバー上の wp-content/plugins/ultimate-tinymce/language 以下に各言語の言語ファイルが格納されています。
日本語の言語ファイルは jwl-ultimate-tinymce-ja.po と jwl-ultimate-tinymce-ja.mo の2つです。拡張子がpoの方をカタログと呼び、翻訳するにはこのファイルを編集していきます。poファイルをコンパイルしてできあがるのがmoファイルで、実際に表示の際に使われるのはこちらのファイルです。poファイルはPoeditというソフトで編集することができます。Unix/Mac/Windowsに対応しています。
というわけでpoファイルさえあれば翻訳ができるのですが、まずはプラグインのフォルダごと全てのファイルをダウンロードしましょう。ダウンロードしたファイルの中のpoファイルをPoeditで開いたところがこんな感じです。
上半分には翻訳すべきテキストが1行ずつ表示され、下半分では原文(Source text)と翻訳文(Translation)の欄があり、翻訳文の欄に翻訳したテキストを記入していき保存するだけです。非常にカンタンです。ただ、翻訳を始める前に準備があります。
Poeditのカタログメニューから、まず Properties を選択します。表示されるウィンドウで、Sources pathsタブを選択します。ここでは、この言語ファイルからみてどの位置にプログラムソースがあるかを指定します。言語ファイルは ultimate-tinymce/language フォルダにあり、プログラムソースは ultimate-tinymce フォルダにありますので、1階層上ということで「..」という設定になります。
次にSources Keywordsタブを開きましょう。
ここでは、翻訳文を指定するPHPの関数名を指定します。WordPressの場合は __ 関数(アンダーバー2つ)と _e 関数が使われていますので、画面の通りで問題ありません。これはソフトウェアによって違います。
設定が完了したら、カタログメニューから「Update from Sources」を選択します。そうすると、プログラムソースからカタログにない翻訳文を探してくれますので、「OK」ボタンを押します。
これで準備完了です。翻訳されていない文が上の方にブルーで表示され、既存の翻訳から推測され自動的に翻訳が追加された翻訳文は中の方にオレンジで、翻訳済みの文は下の方に黒く表示されます。
あとは未翻訳のものをひたすら翻訳していくだけです。最後にファイルを保存すると、自動的にmoファイルも更新されますので、poファイルとmoファイルをサーバー上にアップロードして、既存の言語ファイルを上書きします。するとこのとおり、管理画面が全て日本語になりました!…もともとある程度翻訳してあったので、あまり違いが分からんな…
さてこのように翻訳は意外とカンタンにできてしまうのがお分かりいただけたかと思います。ただ、プラグインによっては日本語の翻訳が全くない場合がありますので、そういう時は言語ファイルの作成からやらないといけないのですが、他の言語のファイルをコピーして作れば楽です。たとえば、 jwl-ultimate-tinymce-fr_FR.po という言語ファイルはフランス語用ですが、この「fr_FR」という部分がフランス語を表します。厳密には、「fr」がフランス語の言語コードで、「FR」がフランスの国コードです。この「fr_FR」を「jp」に変えれば日本語の言語ファイルとして認識されます(WordPressではたぶん歴史的な経緯により日本語では国コードがつきません)。
翻訳ファイルを作者に送ってみる
さて、せっかく翻訳ファイルを作りましたので、作者に送ってみましょう。作者にプラグインにバンドルしてもらえれば、自分だけじゃなく全ての日本のユーザーがこのプラグインを日本語で使えるようになります。だいたいこんな感じでファイルを添付してメールしてみました。英語のメールの書き方なんて分かりませんが、まぁ通じるでしょう。
Dear Josh,
Hi, I made better japanese language file for your plugin.
hope help for japanese user.
Regards,
すると、次の日に「ワオ!超ありがとう!感激だよ!次のバージョンで使えるようにするぜ」(意訳)って感じのメールが届き、無事貢献できた〜という塩梅なわけです。
全部完璧に翻訳しようとしなくていいと思いますので、最低限これだけは日本語化してないとクライアントに納品するとき困るな〜という部分は、この記事のような手順で翻訳して、ついでに作者に送ってみることで他の日本人ユーザーにも貢献できます。ぜひオープンソースの翻訳の世界に足を踏み入れてみてはいかがでしょうか。結構楽しいですよ。
ただ、翻訳にハマりだすと、プラグインじゃなくてソフトウェアまるごと翻訳にチャレンジしたりしはじめることになっちゃうかもしれませんが…。私はそんな気軽な気持ちでいつのまにかconcrete5のような大きなソフトウェアの翻訳に携わるようになってしまいました。concrete5の翻訳チームも常時人手が足りませんので、ぜひ一緒にやりましょう!メンバー募集中です。
おまけ:TinyMCEの翻訳ファイルを反映する
この記事で紹介した方法では、実はUltimate TinyMCEの管理画面しか日本語化できません。たとえば、表の挿入画面はこのように英語のまま…
ここはUltimate TinyMCEプラグインではなく、TinyMCE本体の領域なので、TinyMCEのサイトから言語ファイルを落としてくることができます。
TinyMCE – languages for “tinymce”
こちらのページからJapaneseをダウンロードしてzipファイルを解凍すると、pluginsというフォルダにTinyMCEの各機能の言語ファイルが格納されています。たとえば、表の挿入ボタンであれば、サーバー上の wp-content/plugins/ultimate-tinymce/addons/table/langs ディレクトリーに、解凍した tinymce_language_pack/plugins/table/langs/ja_dlg.js ファイルをアップロードします。するとこのように日本語化されます。
他の機能もそれぞれアップロードする必要があります。ちょっとめんどくさいですね。
Poeditの使い方についてもっと詳しい(面白い)解説
WordCamp福岡2011発表資料 #wcfukuoka – Find Your Alter-Ego