ローカライゼーションとは何か ?
ローカライゼーションとは、国際化されたプラグインを翻訳する後続プロセスのことです。ローカライゼーションはしばしば l10n
と略されます (l と n の間に10文字あるから)。
ローカライゼーション・ファイル
POT (ポータブル・オブジェクト・テンプレート) ファイル
このファイルには、プラグインの原文の文字列 (英語) が含まれています。
PO (ポータブル・オブジェクト) ファイル
各翻訳者は POT
ファイルを受け取って msgstr
セクションを自分の言語に翻訳します。その結果、POT
と同じフォーマットで、翻訳といくつかの特定のヘッダーを持つ PO
ファイルができます。1つの言語につき1つの PO
ファイルが存在します。
MO (マシン・オブジェクト) ファイル
翻訳された PO
ファイルから MO
ファイルがビルドされます。これは機械語のバイナリファイルで、gettext 関数が実際に使用する (.POT
や .PO
ファイルは気にしない) ファイルであり、PO
ファイルの “コンパイル済み” バージョンです。変換は、msgfmt
コマンドラインツールを使って行われます。一般的に、アプリケーションは、複数の大きな論理翻訳モジュールを使用することがあり、それに応じて MO
ファイルも使い分けることがあります。テキストドメインは、各モジュールのハンドルであり、異なる MO
ファイルを持ちます。
POT ファイルの生成
POT
ファイルは、翻訳者に渡す必要があるファイルで、そうすることで翻訳者は仕事をできます。POT
および PO
ファイルは、ファイル名を簡単に入れ替えることができ、問題なくファイルの種類を変更できます。
プラグイン用の POT
ファイルを生成するには、いくつかの方法があります:
WP-CLI
WP-CLI をインストールし、ドキュメントに従って、wp i18n make-pot
コマンドを使用します。
Poedit
Poedit は、翻訳時にローカルでも使用できます。これはすべての主要 OS に対応したオープンソースのツールです。無料の Poedit デフォルト版は、Gettext 関数を使ったすべてのソースコードの手動スキャンをサポートしています。プロ版では、WordPress プラグインをワンクリックでスキャンする機能もあります。PO
ファイルを生成した後、ファイル名を POT
に変更できます。MO
が生成された場合は、そのファイルは不要なので削除できます。プロ版を持っていない場合は、Blank POT を入手し、それを POT ファイル
のベースとして使うことができます。空の POT
を languages フォルダーに置いたら、Poedit の “Update” をクリックして、POT
ファイルをあなたの文字列で更新できます。
Grunt タスク
POT の作成に使える Grunt タスクもあります。grunt-wp-i18n と grunt-pot です。Grunt をセットアップする手順は、このドキュメントの範囲外ですが、可能であることだけは認識しておいてください。プラグインのルートに置くことができる Grunt.js と package.json の例 です。
PO ファイルの翻訳
翻訳したファイルを my-plugin-{ロケール}.mo
という名前で保存します。ロケールとは、言語コードや国コードのことです。たとえば、ドイツ語のロケールは de_DE
です。上記のコード例では、テキストドメインは ‘my-plugin’ ですので、ドイツ語の MO および PO ファイルの名前は my-plugin-de_DE.mo
と my-plugin-de_DE.po
になります。言語コードと国コードの詳細情報については、あなたの言語で WordPress のインストールを参照してください。
PO
ファイルを翻訳するには、複数の方法があります。
手動
テキストエディターを使って翻訳を入力できます。テキストエディターでは、次のようになります。
#: plugin-name.php:123
msgid "Page Title"
msgstr ""
引用符の間に訳語を入力します。ドイツ語の場合、次のようになります。
#: plugin-name.php:123
msgid "Page Title"
msgstr "Seitentitel"
Poedit
翻訳の際、Poedit も使用できます。無料の Poedit デフォルト版は、Gettext 関数によるすべてのソースコードの手動スキャンをサポートしています。プロ版では、WordPress のプラグインとテーマをワンクリックでスキャンする機能もあります。
オンライン・サービス
第3の方法は、オンライン翻訳サービスを利用することです。一般的なアイデアは、POT
ファイルをアップロードして、ユーザーや翻訳者にプラグインの翻訳を許可するというものです。これにより、変更を追跡でき、常に最新の翻訳を持つことができ、翻訳が二度行われるのを減らすことができます。
PO ファイルをオンラインで翻訳するために使用できるツールをいくつか紹介します:
MO ファイルの生成
コマンドライン
msgfmt
は、MO ファイルの作成に使用されます。msgfmt
は、Gettext パッケージの一部です。そうでない場合は、コマンドラインを使うことができます。典型的な msgfmt
コマンドは、以下のようなものです:
Unix オペレーティング・システム
msgfmt -o filename.mo filename.po
Windows オペレーティング・システム
msgfmt -o filename.mo filename.po
一度にたくさんの PO
ファイルを変換する場合は、バッチとして実行できます。たとえば、bash
コマンドを使用します:
Unix オペレーティング・システム (複数ファイル)
# Find PO files, process each with msgfmt and rename the result to MO
for file in `find . -name "*.po"` ; do msgfmt -o ${file/.po/.mo} $file ; done
Windows オペレーティング・システム (複数ファイル)
Windows の場合は、まず Cygwin をインストールする必要があります。
potomo.sh
というファイルを作成し、以下のように記述します:
#! /bin/sh
# Find PO files, process each with msgfmt and rename the result to MO
for file in `/usr/bin/find . -name '*.po'` ; do /usr/bin/msgfmt -o ${file/.po/.mo} $file ; done
このコマンドは、コマンドラインで実行できます。
cd C:/path/to/language/folder/my-plugin/languages & C:/cygwin/bin/bash -c /cygdrive/c/path/to/script/directory/potomo.sh
Poedit
msgfmt
も Poedit に統合されていて、MO ファイルの生成に使用できます。環境設定に有効/無効の設定があります。
Grunt タスク
すべてのファイルを変換する grunt-po2mo があります。
良い翻訳のためのヒント
機械的に翻訳するのではなく、有機的に翻訳する
マルチリンガルであるあなたは、自分が話す言語には異なる構造、リズム、トーン、抑揚があることを知っているはずです。翻訳されたメッセージは、英語のものと同じ様に構成する必要はない: 提示されたアイデアをもとに、ターゲット言語にとって自然な方法で同じことを表現するメッセージを考え出すのです。同じメッセージを作るか、同等のメッセージを作るかの違い: 複製するのではなく、置き換えるということです。より論理的で、ターゲットとする読者によりよく適応していると感じられるなら、メッセージに構造的な項目が多くても、あなたには適応したり変更したりするクリエイティブ・ライセンスがあります。
フォーマルさ (またはインフォーマルさ) のレベルを保つ様に
各メッセージは、フォーマルさ、またはインフォーマルさのレベルが異なります。ターゲット言語での各メッセージにどのレベルのフォーマルさまたはインフォーマルさを使うかは、あなた自身 (またはあなたのチーム) で考えなければならないことですが、WordPress のメッセージ (特に情報メッセージ) は、英語ではかなりインフォーマルなトーンになる傾向があります。あなたの文化的背景の範囲内で、ターゲット言語でも同等のことを達成する様にしましょう。
スラングや特定対象者特有の用語を使わない
ブログにはある程度の専門用語がつきものですが、「内輪」にしか通じない様な口語表現は控えましょう。不慣れなブロガーがあなたの言語で WordPress をインストールしたとして、その用語の意味がわかるでしょうか ? ピンバック、トラックバック、フィードのような単語は例外です。これらは一般的に翻訳が難しい専門用語であり、多くの翻訳者は英語のままにしています。
他のソフトウェアのローカライゼーションを、あなたの言語で読む
行き詰まったり、指示が必要な場合は、他の一般的なソフトウェアツールの翻訳を読んでみて、どのような用語が一般的に使用されているか、どのようにフォーマルな表現が使われているか、などの感覚をつかんでください。もちろん、WordPress には独自のトーンやフィールがあるので、他のローカライゼーションを読むときは、それを念頭に置きますが、あなたの言語の他のソフトウェアとの一貫性を保つために、UI 用語などを自由に掘り起こしてください。
ローカライゼーションの使用
language フォルダー内のローカライゼーションファイルを、プラグインの languages
フォルダー内か、WordPress 3.7以降では通常 wp-content
配下のプラグイン languages
フォルダー内に置きます。フルパスは wp-content/languages/plugins/my-plugin-fr_FR.mo
になります。
言語は “一般設定” で変更できます。このオプションが表示されない場合、または切り替えたい言語がリストにない場合は、手動で行ってください:
wp-config.php
の中で、WPLANG
を選択した言語に定義します。たとえば、フランス語を使いたい場合は、次のようになります:define ('WPLANG', 'fr_FR');
wp-admin/options-general.php
に移動するか、”設定” -> “一般” を選択します。- “サイトの言語” ドロップダウンで言語を選択します。
wp-admin/update-core.php
に移動します。- 利用可能な場合は、”翻訳の更新” をクリックします。
- 利用可能な場合は、コアの翻訳ファイルがダウンロードされます。