[5]poファイルを確認する
poEditを終了し、保存したpoファイルをテキストエディタで開いてみましょう。先ほど入力した情報から、次のようなヘッダが作成されます。
msgid "" msgstr "" "Project-Id-Version: WINGS_ja 1.0\n" "POT-Creation-Date: \n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: wings_mo3 <mo3@sample.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Japanese\n" "X-Poedit-Country: JAPAN\n" "X-Poedit-SourceCharset: utf-8\n"
ここに翻訳のインデックスキーと翻訳の値を追加していきます。ヘッダより下に次のように追加していきます。
msgid "welcome" msgstr "ようこそ" msgid "time" msgstr "今の時刻は %1$s です。"
[6]moファイルを作成する
再度poEditを起動し、[ファイル]-[開く]で先ほど編集したpoファイルを開きましょう。すると次のように原文欄に翻訳のインデックスキー、対訳欄に翻訳された語が表示されます。
もしインデックスキーの名称や、訳を編集したい場合は下2つの欄で直接編集可能です。また、既存のカタログファイルがある場合は、この作業から始めればよいことになります。
編集が終了したら[保存]を選択します。カタログファイルを保存すると、poEditでは自動で同じ名前で拡張子が「.mo」のmoファイルが同時に作成されます。
これでgettextに必要なmoファイルを作成できました。同様にして必要な言語分moファイルを作成しましょう。
poEditではPHPファイルから自動で翻訳インデックスキーを抽出することができます。これは既にサイト構築が終了した後、新たな言語に対応しなくてはならないという場合に便利です。
本稿最初に紹介したindex.phpを前提に使用方法を解説します。
[1]プロジェクトの情報を入力する
poEditを起動し、[ファイル]-[新規カタログ]を選択し、[プロジェクトの設定]画面を表示させます。[情報]タブに適切な値を入力後、[パス]タブを開きます。ここにindex.phpの配置されているディレクトリを指定してください。
このディレクトリ配下にあるphpファイルに対して抽出を行います。翻訳対象ファイルが複数ある場合は複数のパスを入力します。

若干入力に癖があり、[パス]の下のスペースをフォーカス後、左から2番目のボタンを押下すると値を入力できるようになります。
[2]抽出キーワードを指定する
[キーワード]タブには「_」と「_e」を追加します。phpファイルからこのキーワードをもとに翻訳のインデックスキーを抽出します。
入力方法はパス入力時と同様です。

[3]インデックスキーの抽出を実行する
[プロジェクトの設定]画面で[OK]を押下し、poファイルを保存した後、poEditの[Update]ボタンもしくは[カタログ]-[ソースから更新]を選択します。すると翻訳のインデックスキーが抽出されるので[OK]を押下します。後は訳を追加していけばよいことになります。
翻訳ソースのフォルダ構成
arrayアダプタの場合は気にする必要はありませんが、言語ごとに翻訳ソースを作成するgettextやcsvのような場合のフォルダ構造について解説します。
フォルダ構造に制限はありませんが、推奨される数パターンの構造があります。利点、欠点を理解したうえで、作成するアプリケーションに適切な構造を選択しましょう。
言語ごとにソースを配置
1言語あたり1ディレクトリとなるため、理解しやすい構造となります。アプリケーション構築時には翻訳チームごとに1つのディレクトリを担当すればよいため、開発がしやすくなります。
本記事ではこの構造を採用します。
/htdocs
index.php
/languages
/ja
日本語の翻訳ソースファイル(ja.csvやja.mo)
/en
英語の翻訳ソースファイル(en.csvやen.mo)
/fr
フランス語の翻訳ソースファイル(fr.csvやfr.mo)
単一のディレクトリにソースを配置
すべての言語を1つのディレクトリ内に配置します。関連するファイルを分割する必要がなく、ファイルがあまり多くならないことが分かっている場合には、分かりやすい構造です。
/htdocs
index.php
/languages
日本語の翻訳ソースファイル(ja.csvやja.mo)
英語の翻訳ソースファイル(en.csvやen.mo)
フランス語の翻訳ソースファイル(fr.csvやfr.mo)
まとめ
今回はZend_Translateでサイトを国際化する方法を扱いました。次回は引きつづき翻訳ソースの自動検出と、自作アダプタの作成について解説します。


