[GENERIC] Zend_Translate:
[zend.git] / documentation / manual / ja / module_specs / Zend_Translate-Introduction.xml
blob80b00c24f51e419456622d978da9d3bf69a2335d
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <!-- EN-Revision: 20799 -->
4 <sect1 id="zend.translate.introduction">
6     <title>導入</title>
8     <para>
9         <classname>Zend_Translate</classname> は、Zend Framework
10         で多言語対応のアプリケーションを作成するためのパッケージです。
11     </para>
13     <para>
14         多言語対応のアプリケーションでは、コンテンツをさまざまな言語に翻訳し、
15         それをユーザの言語に応じて表示しなければなりません。
16         <acronym>PHP</acronym> にはすでにそのような場合のための手法が用意されています。
17         しかし、<acronym>PHP</acronym> の手法にはいくつかの問題があります。
18     </para>
20     <itemizedlist>
21         <listitem>
22             <para>
23                 <emphasis>一貫性のない <acronym>API</acronym>:</emphasis>
24                 入力フォーマットによって <acronym>API</acronym> が異なります。
25                 たとえば gettext の使用法は非常に複雑です。
26             </para>
27         </listitem>
29         <listitem>
30             <para>
31                 <emphasis><acronym>PHP</acronym> は gettext
32                 およびネイティブの配列しかサポートしていない:</emphasis>
33                 <acronym>PHP</acronym> 自身は配列あるいは gettext しかサポートしていません。
34                 その他の入力フォーマットは、手動で変換する必要があります。
35                 ネイティブなサポートがないからです。
36             </para>
37         </listitem>
39         <listitem>
40             <para>
41                 <emphasis>デフォルト言語の検出方法がない:</emphasis>
42                 ユーザのデフォルト言語を検出するには、
43                 個々のブラウザについての深い知識を要します。
44             </para>
45         </listitem>
47         <listitem>
48             <para>
49                 <emphasis>Gettext はスレッドセーフでない:</emphasis>
50                 <acronym>PHP</acronym> の gettext ライブラリはスレッドセーフではないので、
51                 マルチスレッド環境で使用してはいけません。
52                 これは gettext 自体の問題であって <acronym>PHP</acronym> のせいではありませんが、
53                 問題であることには変わりありません。
54             </para>
55         </listitem>
56     </itemizedlist>
58     <para>
59         <classname>Zend_Translate</classname> にはここであげたような問題はありません。
60         というわけで、<acronym>PHP</acronym> のネイティブ関数ではなく
61         <classname>Zend_Translate</classname> を使用することを推奨します。
62         <classname>Zend_Translate</classname> の利点は、以下のとおりです。
63     </para>
65     <itemizedlist>
66         <listitem>
67             <para>
68                 <emphasis>複数の入力フォーマットのサポート:</emphasis>
69                 <classname>Zend_Translate</classname> はいくつかの入力フォーマットに対応しています。
70                 <acronym>PHP</acronym> でサポートしているもののほかに、TMX や CSV
71                 形式のファイルにも対応しています。
72             </para>
73         </listitem>
75         <listitem>
76             <para>
77                 <emphasis>スレッドセーフな gettext:</emphasis>
78                 <classname>Zend_Translate</classname> の gettext リーダーはスレッドセーフです。
79                 マルチスレッド環境でも問題なく使用できます。
80             </para>
81         </listitem>
83         <listitem>
84             <para>
85                 <emphasis>簡単で汎用的な <acronym>API</acronym>:</emphasis>
86                 <classname>Zend_Translate</classname> の <acronym>API</acronym> は非常にシンプルで、使用する関数はほんの少しだけです。
87                 そのため、容易に覚えることができ、保守も簡単です。
88                 すべての入力フォーマットを同じように処理できます。
89                 つまり、仮に入力ファイルが gettext から TMX に変わったとしても、
90                 ストレージアダプタを指定している部分を一行変更するだけで対応できます。
91             </para>
92         </listitem>
94         <listitem>
95             <para>
96                 <emphasis>ユーザの標準言語の検出:</emphasis>
97                 ユーザがサイトにアクセスする際の preferred language
98                 設定を検出し、<classname>Zend_Translate</classname> で使用できます。
99             </para>
100         </listitem>
102         <listitem>
103             <para>
104                 <emphasis>自動的なソースの検出:</emphasis>
105                 <classname>Zend_Translate</classname> は、複数のソースファイルを検出して統合できます。
106                 さらに、ディレクトリやファイル名に応じて使用するロケールを自動検出することもできます。
107             </para>
108         </listitem>
109     </itemizedlist>
111     <sect2 id="zend.translate.introduction.adapters">
113         <title>多言語対応をはじめよう</title>
115         <para>
116             それでは、多言語対応の作業を始めてみましょう。
117             まずやってみたいことといえば、出力文字列を翻訳し、
118             翻訳結果をビューで表示することですね。
119             そうしないと、個々の言語ごとに別のビューを作らなければならなくなります。
120             誰もそんなことはしたくないでしょう。
121             一般に、多言語対応のサイトの設計は非常にシンプルです。
122             必要なのは、以下のたった 4 つの手順だけです。
123         </para>
125         <orderedlist numeration='arabic'>
126             <listitem>
127                 <para>
128                     使用するアダプタを決める
129                 </para>
130             </listitem>
132             <listitem>
133                 <para>
134                     ビューを作成し、<classname>Zend_Translate</classname> をコードに組み込む
135                 </para>
136             </listitem>
138             <listitem>
139                 <para>
140                     コードから入力ファイルを作成する
141                 </para>
142             </listitem>
144             <listitem>
145                 <para>
146                     入力ファイルを指定した言語に翻訳する
147                 </para>
148             </listitem>
149         </orderedlist>
151         <para>
152             これ以降の節で、この手順について説明します。
153             次の何ページかを読めば、
154             あなたも多言語対応のウェブアプリケーションを作れるようになるでしょう。
155         </para>
157     </sect2>
159 </sect1>
160 <!--
161 vim:se ts=4 sw=4 et: