1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- EN-Revision: 20799 -->
4 <sect1 id="zend.translate.introduction">
9 <classname>Zend_Translate</classname> は、Zend Framework
10 で多言語対応のアプリケーションを作成するためのパッケージです。
14 多言語対応のアプリケーションでは、コンテンツをさまざまな言語に翻訳し、
15 それをユーザの言語に応じて表示しなければなりません。
16 <acronym>PHP</acronym> にはすでにそのような場合のための手法が用意されています。
17 しかし、<acronym>PHP</acronym> の手法にはいくつかの問題があります。
23 <emphasis>一貫性のない <acronym>API</acronym>:</emphasis>
24 入力フォーマットによって <acronym>API</acronym> が異なります。
25 たとえば gettext の使用法は非常に複雑です。
31 <emphasis><acronym>PHP</acronym> は gettext
32 およびネイティブの配列しかサポートしていない:</emphasis>
33 <acronym>PHP</acronym> 自身は配列あるいは gettext しかサポートしていません。
34 その他の入力フォーマットは、手動で変換する必要があります。
41 <emphasis>デフォルト言語の検出方法がない:</emphasis>
43 個々のブラウザについての深い知識を要します。
49 <emphasis>Gettext はスレッドセーフでない:</emphasis>
50 <acronym>PHP</acronym> の gettext ライブラリはスレッドセーフではないので、
52 これは gettext 自体の問題であって <acronym>PHP</acronym> のせいではありませんが、
59 <classname>Zend_Translate</classname> にはここであげたような問題はありません。
60 というわけで、<acronym>PHP</acronym> のネイティブ関数ではなく
61 <classname>Zend_Translate</classname> を使用することを推奨します。
62 <classname>Zend_Translate</classname> の利点は、以下のとおりです。
68 <emphasis>複数の入力フォーマットのサポート:</emphasis>
69 <classname>Zend_Translate</classname> はいくつかの入力フォーマットに対応しています。
70 <acronym>PHP</acronym> でサポートしているもののほかに、TMX や CSV
77 <emphasis>スレッドセーフな gettext:</emphasis>
78 <classname>Zend_Translate</classname> の gettext リーダーはスレッドセーフです。
79 マルチスレッド環境でも問題なく使用できます。
85 <emphasis>簡単で汎用的な <acronym>API</acronym>:</emphasis>
86 <classname>Zend_Translate</classname> の <acronym>API</acronym> は非常にシンプルで、使用する関数はほんの少しだけです。
87 そのため、容易に覚えることができ、保守も簡単です。
88 すべての入力フォーマットを同じように処理できます。
89 つまり、仮に入力ファイルが gettext から TMX に変わったとしても、
90 ストレージアダプタを指定している部分を一行変更するだけで対応できます。
96 <emphasis>ユーザの標準言語の検出:</emphasis>
97 ユーザがサイトにアクセスする際の preferred language
98 設定を検出し、<classname>Zend_Translate</classname> で使用できます。
104 <emphasis>自動的なソースの検出:</emphasis>
105 <classname>Zend_Translate</classname> は、複数のソースファイルを検出して統合できます。
106 さらに、ディレクトリやファイル名に応じて使用するロケールを自動検出することもできます。
111 <sect2 id="zend.translate.introduction.adapters">
113 <title>多言語対応をはじめよう</title>
116 それでは、多言語対応の作業を始めてみましょう。
117 まずやってみたいことといえば、出力文字列を翻訳し、
119 そうしないと、個々の言語ごとに別のビューを作らなければならなくなります。
121 一般に、多言語対応のサイトの設計は非常にシンプルです。
122 必要なのは、以下のたった 4 つの手順だけです。
125 <orderedlist numeration='arabic'>
134 ビューを作成し、<classname>Zend_Translate</classname> をコードに組み込む
152 これ以降の節で、この手順について説明します。
154 あなたも多言語対応のウェブアプリケーションを作れるようになるでしょう。