31.2. Zend_Translate のアダプタ

Zend_Translate は、さまざまなアダプタを使用して翻訳を行えます。 それぞれのアダプタによって利点や欠点があります。 以下に、翻訳の入力ファイルとしてサポートしているすべてのアダプタについてまとめます。

表 31.1. Zend_Translate のアダプタ

アダプタ 説明 備考
Array php の配列 小さめのページ。簡単に使用できる。プログラマしかさわれない。
Csv カンマ区切りファイル (*.csv/*.txt) シンプルなテキスト形式。非常に高速。Unicode 文字で問題が発生する可能性がある。
Gettext gettext のバイナリファイル (*.mo) linux における GNU の標準形式。非常に高速。スレッドセーフ。翻訳用ツールが必要。
TMX tmx ファイル (*.tmx/*.xml) アプリケーション間での翻訳の業界標準。XML フォーマット。可読形式。
XLIFF xliff ファイル (*.xliff/*.xml) TMX に似ているが、よりシンプル。XML フォーマット。可読形式。
その他 *.sql, *.tbx, *.qt 今後、その他さまざまなアダプタを実装する予定です。

31.2.1. 使用するアダプタを決める方法

Zend_Translate でどのアダプタを使用するのかを決める必要があります。 プロジェクトの制約や顧客からの要望などの外的要因でアダプタが決まることもよくありますが、 もしあなたに決定権があるのなら、以下のヒントを参考にしてください。

31.2.1.1. Zend_Translate_Adapter_Array

Array アダプタは、プログラマにとっては 一番シンプルに使えるアダプタです。 しかし、翻訳する文字列が大量にある場合や 多くの言語に翻訳する必要がある場合は、別のアダプタを使うようにしましょう。 たとえば、翻訳文字列が 5000 ほどある場合は Array アダプタは選択しないほうがいいでしょう。

このアダプタを使うのは、小さめのサイトで少なめの言語を扱い、 かつプログラマ自身で翻訳も行う場合だけにしましょう。

31.2.1.2. Zend_Translate_Adapter_Csv

Csv アダプタは、顧客にとっては最もシンプルに使えるアダプタです。 CSV ファイルは標準的なテキストエディタで読むことができますが、 エディタによっては utf8 文字セットをサポートしていないものもあります。

このアダプタを使うのは、 顧客が自分で翻訳を行いたいという場合だけにしましょう。

31.2.1.3. Zend_Translate_Adapter_Gettext

Gettext アダプタは、最もよく用いられるアダプタです。 Gettext は GNU が提供している翻訳フォーマットで、世界中で使用されています。 可読形式ではありませんが、便利なフリーウェア (POEdit など) が公開されています。 Zend_Translate の Gettext アダプタは、PHP の gettext 拡張モジュールを使わずに実装しています。 PHP の gettext 拡張モジュールをインストールしていなくても Gettext アダプタを使用することが可能です。 また、このアダプタはスレッドセーフですが、PHP の gettext 拡張モジュールは現状ではスレッドセーフでありません。

ほとんどの人たちは、このアダプタを使うことになるでしょう。 便利なツールを使用することで、高品質な翻訳が簡単に作成できます。 しかし、gettext のデータは機械が読める形式で保存されるので、 何らかのツールがないと人間が読むことはできません。

31.2.1.4. Zend_Translate_Adapter_Tmx

Tmx アダプタは、複数のシステムで同一の翻訳ソースを使用している顧客などが使用します。 また、翻訳ソースをシステムに依存しない形式にしたい場合にも使用します。 TMX は XML 形式のフォーマットで、業界標準になるといわれています。 XML ファイルは人間が読むことも可能ですが、 パース速度は gettext ファイルより遅くなります。

中規模から大規模の会社はこのアダプタを使用します。 ファイルは可読形式で、システムに依存しない形式になります。

31.2.1.5. Zend_Translate_Adapter_Xliff

Xliff アダプタは、XML ファイルを使用したいけれど TMX 用のツールを持っていないという顧客などが使用します。 XLIFF は XML 形式のフォーマットで、TMX と関連していますが もうすこしシンプルです。機能も一部限定されています。 XML ファイルは人間が読むことも可能ですが、 パース速度は gettext ファイルより遅くなります。

中規模の会社はこのアダプタを使用します。 ファイルは可読形式で、システムに依存しない形式になります。