[GENERIC] Zend_Translate:
[zend.git] / documentation / manual / ja / module_specs / Zend_Locale-Functions.xml
blob8aa00416bf674ab1c9def714983a6abeef1a2476
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <!-- EN-Revision: 21751 -->
4 <sect1 id="zend.locale.functions">
6     <title>Zend_Locale の使用法</title>
8     <para>
9         <classname>Zend_Locale</classname> は、各ロケールについての情報も、
10         自分自身のロケールに合わせた形式で提供します。
11         たとえば他のロケールの名前や曜日名、月名などがこれにあたります。
12     </para>
14     <sect2 id="zend.locale.copying">
16         <title>ロケールオブジェクトのコピー、クローン作成およびシリアライズ</title>
18         <para>
19             <ulink url="http://php.net/language.oop5.cloning">オブジェクトのクローンを作成</ulink>し、
20             ロケールオブジェクトを正確かつ効率的に複製できます。
21             ロケール対応のメソッドのほとんどは、<code>$locale->toString()</code>
22             が返す文字列表現のロケールを受け付けます。
23         </para>
25         <example id="zend.locale.copying.example-1">
26             <title>clone</title>
27             <programlisting language="php"><![CDATA[
28 $locale = new Zend_Locale('ar');
30 // $locale オブジェクトをシリアライズして保存します
31 $serializedLocale = $locale->serialize();
32 // もとのオブジェクトを再度作成します
33 $localeObject = unserialize($serializedLocale);
35 // ロケールの文字列表記を取得します
36 $stringLocale = $locale->toString();
38 // $local オブジェクトの複製を作成します
39 $copiedLocale = clone $locale;
41 print "copied: ", $copiedLocale->toString();
43 // PHP は、__toString() 経由で自動的に toString() をコールします
44 print "copied: ", $copiedLocale;
45 ]]></programlisting>
46         </example>
48     </sect2>
50     <sect2 id="zend.locale.equals">
52         <title>等式</title>
54         <para>
55             <classname>Zend_Locale</classname> は、
56             二つのロケールを比較するための便利な関数も提供しています。
57             ロケール対応のクラスはすべて、これと同等の同一性チェック機能を提供しなければなりません。
58         </para>
60         <example id="zend.locale.equals.example-1">
61             <title>ロケールが同一かどうかの調査</title>
62             <programlisting language="php"><![CDATA[
63 $locale = new Zend_Locale();
64 $mylocale = new Zend_Locale('en_US');
66 // ロケールが同一かどうかを調べます
67 if ($locale->equals($mylocale)) {
68     print "これらのロケールは同一です";
70 ]]></programlisting>
71         </example>
73     </sect2>
75     <sect2 id="zend.locale.getdefault">
77         <title>デフォルトのロケール</title>
79         <para>
80             <methodname>getDefault()</methodname> メソッドは、関連するロケールの配列を返します。
81             これは、ユーザのウェブブラウザからの情報 (取得できる場合)、
82             ホストサーバの環境変数および Zend Framework の設定をもとに取得します。
83             <classname>Zend_Locale</classname> のコンストラクタの最初のパラメータで、
84             <link linkend="zend.locale.selection">
85               (<constant>BROWSER</constant>、<constant>ENVIRONMENT</constant> あるいは <constant>FRAMEWORK</constant> のうちの)
86             </link>
87             どの情報を優先するかを選択します。
88             二番目のパラメータでは、マッチしたロケールをすべて返すのか
89             あるいは最初にマッチした/一番マッチしたものを返すのかを指定します。
90             ロケール対応のコンポーネントは、通常は最初のロケールのみを使用します。
91             優先度が指定されている場合は、それも考慮します。
92         </para>
94         <example id="zend.locale.getdefault.example-1">
95             <title>デフォルトロケールの取得</title>
96             <programlisting language="php"><![CDATA[
97 $locale = new Zend_Locale();
99 // すべてのデフォルトロケールを返します
100 $found = $locale->getDefault();
101 print_r($found);
103 // ブラウザのロケールのみを返します
104 $found2 = $locale->getDefault(Zend_Locale::BROWSER,TRUE);
105 print_r($found2);
106 ]]></programlisting>
107         </example>
109         <para>
110             <link linkend="zend.locale.selection"><constant>BROWSER</constant>、<constant>ENVIRONMENT</constant>
111             あるいは <constant>FRAMEWORK</constant>
112             </link> のいずれかに対応するデフォルトロケールを取得するには、
113             それぞれ対応するメソッドを使用します。
114             <itemizedlist>
115                 <listitem>
116                     <para>
117                         <methodname>getEnvironment()</methodname>
118                     </para>
119                 </listitem>
120                 <listitem>
121                     <para>
122                         <methodname>getBrowser()</methodname>
123                     </para>
124                 </listitem>
125                 <listitem>
126                     <para>
127                         <methodname>getLocale()</methodname>
128                     </para>
129                 </listitem>
130             </itemizedlist>
131         </para>
133     </sect2>
135     <sect2 id="zend.locale.setlocale">
137         <title>新しいロケールの設定</title>
139         <para>
140             新しいロケールを設定するには、関数 <methodname>setLocale()</methodname>
141             を使用します。この関数は、ロケール文字列をパラメータとして受け取ります。
142             ロケールを省略した場合は、ロケールが
143             <link linkend="zend.locale.selection">自動的に選択</link> されます。
144         </para>
146         <example id="zend.locale.setlocale.example-1">
147             <title>setLocale</title>
148             <programlisting language="php"><![CDATA[
149 $locale = new Zend_Locale();
151 // 実際のロケール
152 print $locale->toString();
154 // 新しいロケール
155 $locale->setLocale('aa_DJ');
156 print $locale->toString();
157 ]]></programlisting>
158         </example>
160     </sect2>
162     <sect2 id="zend.locale.getlocale">
164         <title>言語および地域の取得</title>
166         <para>
167             <methodname>getLanguage()</methodname> を使用して、二文字の言語コード文字列を
168             ロケール識別文字列から取得します。また、
169             <methodname>getRegion()</methodname> を使用して、二文字の地域コード文字列を
170             ロケール識別文字列から取得します。
171         </para>
173         <example id="zend.locale.getlocale.example-1">
174             <title>getLanguage および getRegion</title>
175             <programlisting language="php"><![CDATA[
176 $locale = new Zend_Locale();
178 // ロケールが 'ja_JP' の場合は、'ja' が言語として返されます
179 print $locale->getLanguage();
181 // ロケールが 'ja_JP' の場合は、地域として 'JP' が返されます
182 print $locale->getRegion();
183 ]]></programlisting>
184         </example>
186     </sect2>
188     <sect2 id="zend.locale.getlocaletoterritory">
189         <title>Get the locale by giving a territory</title>
191         <para>
192             When you only have the territory or country then it's also possible to get a locale
193             from that information. You can manually search if there is a locale for this territory
194             by using <methodname>getLocaleToTerritory()</methodname>. This method returns a
195             locale for the given territory or <constant>NULL</constant> when there was has no locale
196             been found.
197         </para>
199         <example id="zend.locale.getlocaletoterritory.example-1">
200             <title>getLocaleToTerritory</title>
202             <programlisting language="php"><![CDATA[
203 $locale = Zend_Locale::getLocaleToTerritory('US');
204 // returns 'en_US'
205 ]]></programlisting>
206         </example>
208         <note>
209             <title>Uppercase territories</title>
211             <para>
212                 When you know that you are using a territory, then you should uppercase it.
213                 Otherwise you could get an in your eyes false locale in return when you use other
214                 methods. For example: When you give "om" then
215                 <methodname>getLocaleToTerritory()</methodname> returns you "ar_OM" as it knows that
216                 you mean a territory. But all other methods will return "om", as it's also a
217                 language.
218             </para>
220             <para>
221                 So when you know that the given string is a territory, eighter use
222                 <methodname>getLocaleToTerritory()</methodname> yourself before creating a locale,
223                 or uppercase the input.
224             </para>
225         </note>
226     </sect2>
228     <sect2 id="zend.locale.getdata">
230         <title>地域化された文字列の取得</title>
232         <para>
233             <methodname>getTranslationList()</methodname> を使用すると、地域化された情報を利用できます。
234             これらの情報は、各地域に特化したデータを顧客に対して提供する際に
235             翻訳の必要がなくなるので便利です。
236             これらはすでに使用可能となっています。
237         </para>
239         <para>
240             情報の一覧は、常に連想配列形式で返されます。
241             複数の値を明示的な型に渡したい場合は、複数の値ではなく配列を渡す必要があります。
242         </para>
244         <example id="zend.locale.getdata.example-1">
245             <title>getTranslationList</title>
246             <programlisting language="php"><![CDATA[
247 $list = Zend_Locale::getTranslationList('language', 'de_AT');
249 print_r ($list);
250 // キーと値の組み合わせの例...
251 // [de] -> Deutsch
252 // [en] -> Englisch
254 // これらのキーのいずれかを getTranslation() メソッドで使用します
255 print Zend_Locale::getTranslation('de', 'language', 'zh');
256 // これは、言語 'de' を中国語で表した文字列を返します
257 ]]></programlisting>
258         </example>
260         <para>
261             すべての言語についてこの情報を取得できます。しかし、
262             言語によってはすべての情報が提供されているわけではないものもあります。
263             これらの型のいくつかについては、その型に特化した関数を用意して簡単に使用できるようにしています。
264             詳細はこの一覧を参照ください。
265         </para>
267         <table id="zend.locale.getdata.table-1">
268             <title>getTranslationList($type = null, $locale = null, $value = null) の詳細</title>
269             <tgroup cols="2">
270                 <thead>
271                     <row>
272                         <entry>型</entry>
273                         <entry>説明</entry>
274                     </row>
275                 </thead>
276                 <tbody>
277                     <row>
278                         <entry><emphasis>Language</emphasis></entry>
279                         <entry>
280                           地域化された全言語の一覧を返します。
281                           ロケールの言語部分がキー、そしてその翻訳が値となります。
282                         </entry>
283                     </row>
284                     <row>
285                         <entry><emphasis>Script</emphasis></entry>
286                         <entry>
287                           地域化された全文字の一覧を返します。
288                           ロケールの文字部分がキー、そしてその翻訳が値となります。
289                         </entry>
290                     </row>
291                     <row>
292                         <entry><emphasis>Territory</emphasis></entry>
293                         <entry>
294                           地域化された全領域の一覧を返します。
295                           ここに含まれるのは国と大陸、領域です。
296                           領域と大陸のみを取得するには値として '1' を使用します。
297                           国のみを取得するには値として '2' を使用します。
298                           可能な場合、ロケールの国部分をキーとして使用します。
299                           それ以外の場合は、この領域が使用している公式 <acronym>ISO</acronym> コードをキーとして使用します。
300                           領域を翻訳したものが値となります。
301                           値を省略した場合は、両方の一覧を取得します。
302                         </entry>
303                     </row>
304                     <row>
305                         <entry><emphasis>Variant</emphasis></entry>
306                         <entry>
307                           地域化された文字変化形の一覧を返します。
308                           変化形がキー、そしてその翻訳が値となります。
309                         </entry>
310                     </row>
311                     <row>
312                         <entry><emphasis>Key</emphasis></entry>
313                         <entry>
314                           地域化されたキーの一覧を帰します。
315                           このキーは、翻訳に使用する一般的な値となります。
316                           通常はカレンダーや文字照合、通貨などです。
317                           キーが配列のキー、そしてその翻訳が値となります。
318                         </entry>
319                     </row>
320                     <row>
321                         <entry><emphasis>Type</emphasis></entry>
322                         <entry>
323                           翻訳されたキーの型の一覧を返します。
324                           これらは、カレンダーの表現や文字列照合方式を表します。
325                           値として 'collation' を使用すると、文字列照合方式の一覧を取得します。
326                           値として 'calendar' を使用すると、カレンダーの型の一覧を取得します。
327                           値を省略した場合は、両方の一覧を取得します。
328                           型がキー、そしてその翻訳が値となります。
329                         </entry>
330                     </row>
331                     <row>
332                         <entry><emphasis>Layout</emphasis></entry>
333                         <entry>特別なテキスト部分の書式を決めるルールの一覧を返します。</entry>
334                     </row>
335                     <row>
336                         <entry><emphasis>Characters</emphasis></entry>
337                         <entry>このロケールで使用できる文字の一覧を返します。</entry>
338                     </row>
339                     <row>
340                         <entry><emphasis>Delimiters</emphasis></entry>
341                         <entry>このロケールで使用できるクォート文字の一覧を返します。</entry>
342                     </row>
343                     <row>
344                         <entry><emphasis>Measurement</emphasis></entry>
345                         <entry>単位の値の一覧を返します。この一覧は廃止予定です。</entry>
346                     </row>
347                     <row>
348                         <entry><emphasis>Months</emphasis></entry>
349                         <entry>
350                           このロケールにおけるすべての月の表現の一覧を返します。
351                           異なる表現方式がある場合は配列として返されます。
352                           値を省略すると、グレゴリオ暦におけるすべての月の一覧を返します。
353                           値として、既知の暦の名前を指定できます。
354                           その場合は指定した暦における月の一覧を返します。
355                           単純に行うには
356                           <link linkend="zend.date.introduction">Zend_Date</link>
357                           を使用します。
358                         </entry>
359                     </row>
360                     <row>
361                         <entry><emphasis>Month</emphasis></entry>
362                         <entry>
363                           このロケールにおけるすべての月名の一覧を返します。
364                           値を省略すると、グレゴリオ暦で通常使用する完全な月名を返します。
365                           各月の数値がキー、そして月名の翻訳が値となります。
366                           値として配列を指定すると、さまざまな暦や書式に対応する月を取得できます。
367                           配列の最初のエントリが暦、2 番目は使用するコンテキスト、
368                           そして 3 番目が返す幅となります。
369                           単純に行うには
370                           <link linkend="zend.date.introduction">Zend_Date</link>
371                           を使用します。
372                         </entry>
373                     </row>
374                     <row>
375                         <entry><emphasis>Days</emphasis></entry>
376                         <entry>
377                           このロケールにおけるすべての曜日の表現の一覧を返します。
378                           異なる表現方式がある場合は配列として返されます。
379                           値を省略すると、グレゴリオ暦におけるすべての曜日の一覧を返します。
380                           値として、既知の暦の名前を指定できます。
381                           その場合は指定した暦における曜日の一覧を返します。
382                           単純に行うには
383                           <link linkend="zend.date.introduction">Zend_Date</link>
384                           を使用します。
385                         </entry>
386                     </row>
387                     <row>
388                         <entry><emphasis>Day</emphasis></entry>
389                         <entry>
390                           このロケールにおけるすべての曜日名の一覧を返します。
391                           値を省略すると、グレゴリオ暦で通常使用する完全な曜日名を返します。
392                           英語の各曜日名の略称がキー、そして曜日名の翻訳が値となります。
393                           値として配列を指定すると、さまざまな暦や書式に対応する曜日を取得できます。
394                           配列の最初のエントリが暦、2 番目は使用するコンテキスト、
395                           そして 3 番目が返す幅となります。
396                           単純に行うには
397                           <link linkend="zend.date.introduction">Zend_Date</link>
398                           を使用します。
399                         </entry>
400                     </row>
401                     <row>
402                         <entry><emphasis>Week</emphasis></entry>
403                         <entry>
404                           ロケール内で週の計算を適切に行うための値の一覧を返します。
405                           単純に行うには
406                           <link linkend="zend.date.introduction">Zend_Date</link>
407                           を使用します。
408                         </entry>
409                     </row>
410                     <row>
411                         <entry><emphasis>Quarters</emphasis></entry>
412                         <entry>
413                           このロケールにおけるすべての四半期の表現の一覧を返します。
414                           異なる表現方式がある場合は配列として返されます。
415                           値を省略すると、グレゴリオ暦におけるすべての四半期の一覧を返します。
416                           値として、既知の暦の名前を指定できます。
417                           その場合は指定した暦における四半期の一覧を返します。
418                         </entry>
419                     </row>
420                     <row>
421                         <entry><emphasis>Quarter</emphasis></entry>
422                         <entry>
423                           このロケールにおけるすべての四半期名の一覧を返します。
424                           値を省略すると、グレゴリオ暦で通常使用する完全な四半期名を返します。
425                           四半期番号がキー、そして四半期名の翻訳が値となります。
426                           値として配列を指定すると、さまざまな暦や書式に対応する四半期を取得できます。
427                           配列の最初のエントリが暦、2 番目は使用するコンテキスト、
428                           そして 3 番目が返す幅となります。
429                         </entry>
430                     </row>
431                     <row>
432                         <entry><emphasis>Eras</emphasis></entry>
433                         <entry>
434                           このロケールにおけるすべての紀元の表現の一覧を返します。
435                           値を省略すると、グレゴリオ暦におけるすべての紀元の一覧を返します。
436                           値として、既知の暦の名前を指定できます。
437                           その場合は指定した暦における紀元の一覧を返します。
438                         </entry>
439                     </row>
440                     <row>
441                         <entry><emphasis>Era</emphasis></entry>
442                         <entry>
443                           このロケールにおけるすべての紀元名の一覧を返します。
444                           値を省略すると、グレゴリオ暦で通常使用する完全な紀元名を返します。
445                           紀元番号がキー、そして紀元名の翻訳が値となります。
446                           値として配列を指定すると、さまざまな暦や書式に対応する紀元を取得できます。
447                           配列の最初のエントリが暦、
448                           そして 2 番目が返す幅となります。
449                         </entry>
450                     </row>
451                     <row>
452                         <entry><emphasis>Date</emphasis></entry>
453                         <entry>
454                           このロケールにおけるすべての日付フォーマットの一覧を返します。
455                           使用する日付フォーマットの名前がキー、そしてフォーマットそのものが値となります。
456                           値を省略すると、グレゴリオ暦における日付フォーマットの一覧を返します。
457                           暦の名前を指定すると、さまざまな暦に対応する日付フォーマットを取得できます。
458                           単純に行うには
459                           <link linkend="zend.date.introduction">Zend_Date</link>
460                           を使用します。
461                         </entry>
462                     </row>
463                     <row>
464                         <entry><emphasis>Time</emphasis></entry>
465                         <entry>
466                           このロケールにおけるすべての時刻フォーマットの一覧を返します。
467                           使用する時刻フォーマットの名前がキー、そしてフォーマットそのものが値となります。
468                           値を省略すると、グレゴリオ暦における時刻フォーマットの一覧を返します。
469                           暦の名前を指定すると、さまざまな暦に対応する時刻フォーマットを取得できます。
470                           単純に行うには
471                           <link linkend="zend.date.introduction">Zend_Date</link>
472                           を使用します。
473                         </entry>
474                     </row>
475                     <row>
476                         <entry><emphasis>DateTime</emphasis></entry>
477                         <entry>
478                           このロケールにおけるすべての日付-時刻フォーマットの一覧を返します。
479                           使用する日付-時刻フォーマットの名前がキー、そしてフォーマットそのものが値となります。
480                           値を省略すると、グレゴリオ暦における日付-時刻フォーマットの一覧を返します。
481                           暦の名前を指定すると、さまざまな暦に対応する日付-時刻フォーマットを取得できます。
482                           単純に行うには
483                           <link linkend="zend.date.introduction">Zend_Date</link>
484                           を使用します。
485                         </entry>
486                     </row>
487                     <row>
488                         <entry><emphasis>DateItem</emphasis></entry>
489                         <entry>指定した日付項目あるいは時刻項目に関するデフォルトフォーマットの一覧を返します。</entry>
490                     </row>
491                     <row>
492                         <entry><emphasis>DateInterval</emphasis></entry>
493                         <entry>
494                             間隔を表示したい際に使用する日付・時刻フォーマットの一覧を返します。
495                             この一覧は多次元配列です。最初の配列が間隔の書式、
496                             その次の配列が最大の差のトークンとなります。
497                         </entry>
498                     </row>
499                     <row>
500                         <entry><emphasis>Field</emphasis></entry>
501                         <entry>
502                           地域化した日付フィールドの一覧を返します。
503                           これは、カレンダーや日付で 'month' や 'year'
504                           といった文字列を各国語で表示する際に使用します。
505                           値を省略すると、グレゴリオ暦における一覧を返します。
506                           暦の名前を指定すると、さまざまな暦に対応する一覧を取得できます。
507                         </entry>
508                     </row>
509                     <row>
510                         <entry><emphasis>Relative</emphasis></entry>
511                         <entry>
512                           地域化した相対日付の一覧を返します。
513                           'yesterday' や 'tomorrow'
514                           といった文字列を各国語で表示する際に使用します。
515                           値を省略すると、グレゴリオ暦における一覧を返します。
516                           暦の名前を指定すると、さまざまな暦に対応する一覧を取得できます。
517                         </entry>
518                     </row>
519                     <row>
520                         <entry><emphasis>Symbols</emphasis></entry>
521                         <entry>数値表現に使用する文字の地域化した一覧を返します。</entry>
522                     </row>
523                     <row>
524                         <entry><emphasis>NameToCurrency</emphasis></entry>
525                         <entry>
526                           地域化した通貨名の一覧を返します。
527                           通貨がキー、そして通貨名の翻訳が値となります。
528                           <link linkend="zend.currency.introduction">Zend_Currency</link>
529                           を使用します。
530                         </entry>
531                     </row>
532                     <row>
533                         <entry><emphasis>CurrencyToName</emphasis></entry>
534                         <entry>
535                           地域化した通貨名に対応する通貨の一覧を返します。
536                           通貨名の翻訳がキー、そして通貨が値となります。
537                           単純に行うには
538                           <link linkend="zend.currency.introduction">Zend_Currency</link>
539                           を使用します。
540                         </entry>
541                     </row>
542                     <row>
543                         <entry><emphasis>CurrencySymbol</emphasis></entry>
544                         <entry>
545                           通貨に対応する地域化した通貨記号の一覧を返します。
546                           通貨がキー、そして記号が値となります。
547                           単純に行うには
548                           <link linkend="zend.currency.introduction">Zend_Currency</link>
549                           を使用します。
550                         </entry>
551                     </row>
552                     <row>
553                         <entry><emphasis>Question</emphasis></entry>
554                         <entry>
555                           肯定 ('yes') および否定 ('no')
556                           に対応する地域化した文字列の一覧を返します。
557                           単純に行うには
558                           <link linkend="zend.locale.getquestion">Zend_Locale の getQuestion メソッド</link>
559                           を使用します。
560                         </entry>
561                     </row>
562                     <row>
563                         <entry><emphasis>CurrencyFraction</emphasis></entry>
564                         <entry>
565                           通貨に対応する小数部の桁数を返します。
566                           通貨がキー、そして小数部の桁数が値となります。
567                           単純に行うには
568                           <link linkend="zend.currency.introduction">Zend_Currency</link>
569                           を使用します。
570                         </entry>
571                     </row>
572                     <row>
573                         <entry><emphasis>CurrencyRounding</emphasis></entry>
574                         <entry>
575                           通貨に対応する丸め方式の一覧を返します。
576                           通貨がキー、そして丸め方式が値となります。
577                           単純に行うには
578                           <link linkend="zend.currency.introduction">Zend_Currency</link>
579                           を使用します。
580                         </entry>
581                     </row>
582                     <row>
583                         <entry><emphasis>CurrencyToRegion</emphasis></entry>
584                         <entry>
585                           その地域で使用する通貨の一覧を返します。
586                           <constant>ISO3166</constant> の値 ('region') が配列のキー、そして <constant>ISO4217</constant> の値
587                           ('currency') が配列の値となります。
588                           単純に行うには
589                           <link linkend="zend.currency.introduction">Zend_Currency</link>
590                           を使用します。
591                         </entry>
592                     </row>
593                     <row>
594                         <entry><emphasis>RegionToCurrency</emphasis></entry>
595                         <entry>
596                           その通貨を使用している地域の一覧を返します。
597                           <constant>ISO4217</constant> の値 ('currency') が配列のキー、そして
598                           <constant>ISO3166</constant> の値 ('region') が配列の値となります。
599                           通貨が複数の地域で使用されている場合は、
600                           空白で区切った形式になります。
601                           単純に行うには
602                           <link linkend="zend.currency.introduction">Zend_Currency</link>
603                           を使用します。
604                         </entry>
605                     </row>
606                     <row>
607                         <entry><emphasis>RegionToTerritory</emphasis></entry>
608                         <entry>
609                           その国の領域一覧あるいはその領域に含まれるサブ領域の一覧を返します。
610                           その通貨を使用している地域と領域の一覧を返します。
611                           <acronym>ISO</acronym> の領域コード ('currency') が配列のキー、そして
612                           <constant>ISO3166</constant> の値 ('region') が配列の値となります。
613                           領域が複数の地域を含む場合は、
614                           空白で区切った形式になります。
615                         </entry>
616                     </row>
617                     <row>
618                         <entry><emphasis>TerritoryToRegion</emphasis></entry>
619                         <entry>
620                           地域とその地域が存在する領域の一覧を返します。
621                           <constant>ISO3166</constant> のコード ('region') が配列のキー、
622                           そして <acronym>ISO</acronym> の領域コード ('territory') が配列の値となります。
623                           地域が複数の領域にまたがる場合は、
624                           空白で区切った形式になります。
625                         </entry>
626                     </row>
627                     <row>
628                         <entry><emphasis>ScriptToLanguage</emphasis></entry>
629                         <entry>
630                           その国で使用する文字の一覧を返します。
631                           言語コードが配列のキー、そして文字コードが配列の値となります。
632                           言語が複数の文字を含む場合は、
633                           空白で区切った形式になります。
634                         </entry>
635                     </row>
636                     <row>
637                         <entry><emphasis>LanguageToScript</emphasis></entry>
638                         <entry>
639                           ある文字を使用する言語の一覧を返します。
640                           文字コードが配列のキー、そして言語コードが配列の値となります。
641                           文字が複数の言語で用いられる場合は、
642                           空白で区切った形式になります。
643                         </entry>
644                     </row>
645                     <row>
646                         <entry><emphasis>TerritoryToLanguage</emphasis></entry>
647                         <entry>
648                           ある言語を使用する国の一覧を返します。
649                           国コードが配列のキー、そして言語コードが配列の値となります。
650                           言語が複数の国で用いられる場合は、
651                           空白で区切った形式になります。
652                         </entry>
653                     </row>
654                     <row>
655                         <entry><emphasis>LanguageToTerritory</emphasis></entry>
656                         <entry>
657                           国と、その国で話されている言語の一覧を返します。
658                           国コードが配列のキー、そして言語コードが配列の値となります。
659                           領域が複数の言語を使用する場合は、
660                           空白で区切った形式になります。
661                         </entry>
662                     </row>
663                     <row>
664                         <entry><emphasis>TimezoneToWindows</emphasis></entry>
665                         <entry>
666                           Windows のタイムゾーンと、関連する <acronym>ISO</acronym> タイムゾーンの一覧を返します。
667                           Windows のタイムゾーンが配列のキー、
668                           そして <acronym>ISO</acronym> タイムゾーンが配列の値となります。
669                         </entry>
670                     </row>
671                     <row>
672                         <entry><emphasis>WindowsToTimezone</emphasis></entry>
673                         <entry>
674                           <acronym>ISO</acronym> タイムゾーンと、関連する Windows のタイムゾーンの一覧を返します。
675                           <acronym>ISO</acronym> タイムゾーンが配列のキー、
676                           そして Windows のタイムゾーンが配列の値となります。
677                         </entry>
678                     </row>
679                     <row>
680                         <entry><emphasis>TerritoryToTimezone</emphasis></entry>
681                         <entry>
682                           地域あるいは領域と、関連する <acronym>ISO</acronym> タイムゾーンの一覧を返します。
683                           <acronym>ISO</acronym> タイムゾーンが配列のキー、そして領域コードが配列の値となります。
684                         </entry>
685                     </row>
686                     <row>
687                         <entry><emphasis>TimezoneToTerritory</emphasis></entry>
688                         <entry>
689                           タイムゾーンと、関連する地域あるいは領域コードの一覧を返します。
690                           地域コードあるいは領域コードが配列のキー、
691                           そして <acronym>ISO</acronym> タイムゾーンが配列の値となります。
692                         </entry>
693                     </row>
694                     <row>
695                         <entry><emphasis>CityToTimezone</emphasis></entry>
696                         <entry>
697                           地域化した都市名の一覧を返します。
698                           これを用いて、関連するタイムゾーンの翻訳を行います。
699                           すべてのタイムゾーンが翻訳できるわけではありませんが、
700                           ユーザにとっては <acronym>ISO</acronym> タイムゾーン名よりも
701                           母国語で書かれた都市名のほうがわかりやすいでしょう。
702                           <acronym>ISO</acronym> タイムゾーンが配列のキー、そして都市名の翻訳が配列の値となります。
703                         </entry>
704                     </row>
705                     <row>
706                         <entry><emphasis>TimezoneToCity</emphasis></entry>
707                         <entry>
708                           地域化した都市名に対応するタイムゾーンの一覧を返します。
709                           地域化した都市名が配列のキー、
710                           そして <acronym>ISO</acronym> タイムゾーンが配列の値となります。
711                         </entry>
712                     </row>
713                     <row>
714                         <entry><emphasis>PhoneToTerritory</emphasis></entry>
715                         <entry>
716                             領域内で使用されている電話コードの一覧を返します。
717                             領域 (地域) が配列のキー、
718                             そして電話コードが配列の値となります。
719                         </entry>
720                     </row>
721                     <row>
722                         <entry><emphasis>TerritoryToPhone</emphasis></entry>
723                         <entry>
724                             電話コードが使用されている領域の一覧を返します。
725                             電話コードが配列のキー、
726                             そして領域 (地域) が配列の値となります。
727                             ある電話コードが複数の領域で使用されている場合は、
728                             空白で区切った形式になります。
729                         </entry>
730                     </row>
731                     <row>
732                         <entry><emphasis>NumericToTerritory</emphasis></entry>
733                         <entry>
734                             領域内で使用されている 3 桁の数値コードの一覧を返します。
735                             領域 (地域) が配列のキー、
736                             そして 3 桁の数値コードが配列の値となります。
737                         </entry>
738                     </row>
739                     <row>
740                         <entry><emphasis>TerritoryToNumeric</emphasis></entry>
741                         <entry>
742                             3 桁の数値コードに対応する領域の一覧を返します。
743                             3 桁の数値コードが配列のキー、
744                             そして領域 (地域) が配列の値となります。
745                         </entry>
746                     </row>
747                     <row>
748                         <entry><emphasis>Alpha3ToTerritory</emphasis></entry>
749                         <entry>
750                             領域内で使用されている 3 桁の文字コードの一覧を返します。
751                             領域 (地域) が配列のキー、
752                             そして 3 桁の文字コードが配列の値となります。
753                         </entry>
754                     </row>
755                     <row>
756                         <entry><emphasis>TerritoryToAlpha3</emphasis></entry>
757                         <entry>
758                             3 桁の文字コードに対応する領域の一覧を返します。
759                             3 桁の文字コードが配列のキー、
760                             そして領域 (地域) が配列の値となります。
761                         </entry>
762                     </row>
763                     <row>
764                         <entry><emphasis>PostalToTerritory</emphasis></entry>
765                         <entry>
766                             その郵便番号が使われている領域の一覧を正規表現で返します。
767                             <acronym>ISO</acronym> 領域コード ('territory') が配列のキー、
768                             そして正規表現が配列の値となります。
769                         </entry>
770                     </row>
771                     <row>
772                         <entry><emphasis>NumberingSystem</emphasis></entry>
773                         <entry>
774                             桁表記に使用する文字の一覧を返します。
775                         </entry>
776                     </row>
777                     <row>
778                         <entry><emphasis>FallbackToChar</emphasis></entry>
779                         <entry>
780                             よく使われる unicode 文字の置換用文字の一覧を返します。
781                             これを使用して、たとえば "©" を "(C)" に置換したりします。
782                         </entry>
783                     </row>
784                     <row>
785                         <entry><emphasis>CharToFallback</emphasis></entry>
786                         <entry>
787                             よく使われる置換用文字に対応する unicode 文字の一覧を返します。
788                             これを使用して、たとえば "(C)" を "©" に置換したりします。
789                         </entry>
790                     </row>
791                     <row>
792                         <entry><emphasis>LocaleUpgrade</emphasis></entry>
793                         <entry>
794                             ロケールの依存性の一覧を返します。
795                             これを使用して、言語を完全修飾形式のロケールに変換します。
796                         </entry>
797                     </row>
798                     <row>
799                         <entry><emphasis>Unit</emphasis></entry>
800                         <entry>
801                             地域化したカレンダーの単位の一覧を帰します。
802                             これを使用して、"day" や "month" などといった文字列を自動的に翻訳します。
803                         </entry>
804                     </row>
805                 </tbody>
806             </tgroup>
807         </table>
809         <para>
810             単一の翻訳データがほしい場合は、<methodname>getTranslation()</methodname> を使用します。
811             この関数は常に文字列を返しますが、<methodname>getTranslationList()</methodname>
812             メソッドよりも多くの型を使用できます。
813             また、値についても一点を除いて同じです。
814             取得したい値について、詳細を指定する必要があります。
815         </para>
817         <note>
818             <para>
819                 ほとんどすべての場合について値を指定する必要があるので、
820                 このパラメータを最初に指定するようになっています。
821                 この点は <methodname>getTranslationList()</methodname> メソッドと異なります。
822             </para>
823         </note>
825         <para>
826             詳細な情報は、次の表を参照ください。
827         </para>
829         <table id="zend.locale.getdata.table-2">
830             <title>getTranslation($value = null, $type = null, $locale = null) の詳細</title>
831             <tgroup cols="2">
832                 <thead>
833                     <row>
834                         <entry>型</entry>
835                         <entry>説明</entry>
836                     </row>
837                 </thead>
838                 <tbody>
839                     <row>
840                         <entry><emphasis>Language</emphasis></entry>
841                         <entry>
842                           言語の翻訳を返します。
843                           希望通りの翻訳を選択するために、言語コードを値として指定する必要があります。
844                         </entry>
845                     </row>
846                     <row>
847                         <entry><emphasis>Script</emphasis></entry>
848                         <entry>
849                           文字の翻訳を返します。
850                           希望通りの翻訳を選択するために、文字コードを値として指定する必要があります。
851                         </entry>
852                     </row>
853                     <row>
854                         <entry><emphasis>Territory</emphasis> あるいは
855                             <emphasis>Country</emphasis></entry>
856                         <entry>
857                           領域の翻訳を返します。
858                           これは国、大陸および領域のいずれかとなります。
859                           希望通りの翻訳を選択するために、領域コードを値として指定する必要があります。
860                         </entry>
861                     </row>
862                     <row>
863                         <entry><emphasis>Variant</emphasis></entry>
864                         <entry>
865                           文字の変化形の翻訳を返します。
866                           希望通りの翻訳を選択するために、変化形コードを値として指定する必要があります。
867                         </entry>
868                     </row>
869                     <row>
870                         <entry><emphasis>Key</emphasis></entry>
871                         <entry>
872                           既知のキーの翻訳を返します。
873                           このキーは、翻訳で使用する一般的な値です。
874                           通常はカレンダーや文字照合、通貨などです。
875                           希望通りのキーを選択するために、キーコードを値として指定する必要があります。
876                         </entry>
877                     </row>
878                     <row>
879                         <entry><emphasis>DefaultCalendar</emphasis></entry>
880                         <entry>
881                           指定したロケールにおけるデフォルトの暦を返します。
882                           ほとんどのロケールでは、これは 'gregorian' (グレゴリオ暦) となります。
883                           単純に行うには
884                           <link linkend="zend.date.introduction">Zend_Date</link>
885                           を使用します。
886                         </entry>
887                     </row>
888                     <row>
889                         <entry><emphasis>MonthContext</emphasis></entry>
890                         <entry>
891                           指定した暦で用いる月のデフォルトコンテキストを返します。
892                           値を省略した場合はグレゴリオ暦を使用します。
893                           単純に行うには
894                           <link linkend="zend.date.introduction">Zend_Date</link>
895                           を使用します。
896                         </entry>
897                     </row>
898                     <row>
899                         <entry><emphasis>DefaultMonth</emphasis></entry>
900                         <entry>
901                           指定した暦で用いる月のデフォルトフォーマットを返します。
902                           値を省略した場合はグレゴリオ暦を使用します。
903                           単純に行うには
904                           <link linkend="zend.date.introduction">Zend_Date</link>
905                           を使用します。
906                         </entry>
907                     </row>
908                     <row>
909                         <entry><emphasis>Month</emphasis></entry>
910                         <entry>
911                           月の翻訳を返します。
912                           月を表す数値を値として指定する必要があります。
913                           これは 1 から 12 までの数値となります。
914                           他の暦、コンテキスト、フォーマットのデータを取得したい場合は、
915                           値として整数値ではなく配列を指定します。
916                           この配列の形式は
917                           <code>array(
918                             'calendar', 'context', 'format', 'month number')</code>
919                           となります。整数値のみを指定した場合のデフォルトは、
920                           暦が 'gregorian'、コンテキストが 'format'
921                           そしてフォーマットが 'wide' となります。
922                           単純に行うには
923                           <link linkend="zend.date.introduction">Zend_Date</link>
924                           を使用します。
925                         </entry>
926                     </row>
927                     <row>
928                         <entry><emphasis>DayContext</emphasis></entry>
929                         <entry>
930                           指定した暦で用いる日のデフォルトコンテキストを返します。
931                           値を省略した場合はグレゴリオ暦を使用します。
932                           単純に行うには
933                           <link linkend="zend.date.introduction">Zend_Date</link>
934                           を使用します。
935                         </entry>
936                     </row>
937                     <row>
938                         <entry><emphasis>DefaultDay</emphasis></entry>
939                         <entry>
940                           指定した暦で用いる曜日のデフォルトフォーマットを返します。
941                           値を省略した場合はグレゴリオ暦を使用します。
942                           単純に行うには
943                           <link linkend="zend.date.introduction">Zend_Date</link>
944                           を使用します。
945                         </entry>
946                     </row>
947                     <row>
948                         <entry><emphasis>Day</emphasis></entry>
949                         <entry>
950                           曜日の翻訳を返します。
951                           英語での曜日の省略名 ('sun', 'mon', など)
952                           を値として指定する必要があります。
953                           他の暦、コンテキスト、フォーマットのデータを取得したい場合は、
954                           値として文字列ではなく配列を指定します。
955                           この配列の形式は
956                           <code>array('calendar', 'context', 'format', 'day abbreviation')</code>
957                           となります。文字列のみを指定した場合のデフォルトは、
958                           暦が 'gregorian'、コンテキストが 'format'
959                           そしてフォーマットが 'wide' となります。
960                           単純に行うには
961                           <link linkend="zend.date.introduction">Zend_Date</link>
962                           を使用します。
963                         </entry>
964                     </row>
965                     <row>
966                         <entry><emphasis>Quarter</emphasis></entry>
967                         <entry>
968                           四半期の翻訳を返します。
969                           四半期を表す数値を値として指定する必要があります。
970                           これは 1 から 4 までの数値となります。
971                           他の暦、コンテキスト、フォーマットのデータを取得したい場合は、
972                           値として数値ではなく配列を指定します。
973                           この配列の形式は
974                           <code>array('calendar', 'context', 'format', 'quarter number')</code>
975                           となります。文字列のみを指定した場合のデフォルトは、
976                           暦が 'gregorian'、コンテキストが 'format'
977                           そしてフォーマットが 'wide' となります。
978                         </entry>
979                     </row>
980                     <row>
981                         <entry><emphasis>Am</emphasis></entry>
982                         <entry>
983                           そのロケールにおける 'AM' の翻訳を返します。
984                           他の暦の値を取得したい場合は、その暦を文字列で指定します。
985                           値を省略した場合はグレゴリオ暦を使用します。
986                           単純に行うには
987                           <link linkend="zend.date.introduction">Zend_Date</link>
988                           を使用します。
989                         </entry>
990                     </row>
991                     <row>
992                         <entry><emphasis>Pm</emphasis></entry>
993                         <entry>
994                           そのロケールにおける 'PM' の翻訳を返します。
995                           他の暦の値を取得したい場合は、その暦を文字列で指定します。
996                           値を省略した場合はグレゴリオ暦を使用します。
997                           単純に行うには
998                           <link linkend="zend.date.introduction">Zend_Date</link>
999                           を使用します。
1000                         </entry>
1001                     </row>
1002                     <row>
1003                         <entry><emphasis>Era</emphasis></entry>
1004                         <entry>
1005                           そのロケールにおける紀元の翻訳を返します。
1006                           紀元番号を文字列あるいは整数値で指定します。
1007                           他の暦やフォーマットの値を取得したい場合は、
1008                           値として数値ではなく配列を指定します。
1009                           この配列の形式は
1010                           <code>array('calendar', 'format', 'era number')</code>
1011                           となります。文字列のみを指定した場合のデフォルトは、
1012                           暦が 'gregorian'、コンテキストが 'format'
1013                           そしてフォーマットが 'wide' となります。
1014                         </entry>
1015                     </row>
1016                     <row>
1017                         <entry><emphasis>DefaultDate</emphasis></entry>
1018                         <entry>
1019                           指定した暦で用いる日のデフォルトフォーマットを返します。
1020                           値を省略した場合はグレゴリオ暦を使用します。
1021                           単純に行うには
1022                           <link linkend="zend.date.introduction">Zend_Date</link>
1023                           を使用します。
1024                         </entry>
1025                     </row>
1026                     <row>
1027                         <entry><emphasis>Date</emphasis></entry>
1028                         <entry>
1029                           そのロケールにおける、指定した暦あるいはフォーマットでの日のフォーマットを返します。
1030                           値を省略した場合は、暦が 'gregorian'、フォーマットが
1031                           'medium' となります。
1032                           文字列を指定した場合は、暦が 'gregorian'
1033                           でフォーマットが指定したものとなります。
1034                           <code>array('calendar', 'format')</code>
1035                           のような配列を指定することもできます。
1036                           単純に行うには
1037                           <link linkend="zend.date.introduction">Zend_Date</link>
1038                           を使用します。
1039                         </entry>
1040                     </row>
1041                     <row>
1042                         <entry><emphasis>DefaultTime</emphasis></entry>
1043                         <entry>
1044                           指定した暦で用いる時刻のデフォルトフォーマットを返します。
1045                           値を省略した場合はグレゴリオ暦を使用します。
1046                           単純に行うには
1047                           <link linkend="zend.date.introduction">Zend_Date</link>
1048                           を使用します。
1049                         </entry>
1050                     </row>
1051                     <row>
1052                         <entry><emphasis>Time</emphasis></entry>
1053                         <entry>
1054                           そのロケールにおける、指定した暦あるいはフォーマットでの時刻のフォーマットを返します。
1055                           値を省略した場合は、暦が 'gregorian'、フォーマットが
1056                           'medium' となります。
1057                           文字列を指定した場合は、暦が 'gregorian'
1058                           でフォーマットが指定したものとなります。
1059                           <code>array('calendar', 'format')</code>
1060                           のような配列を指定することもできます。
1061                           単純に行うには
1062                           <link linkend="zend.date.introduction">Zend_Date</link>
1063                           を使用します。
1064                         </entry>
1065                     </row>
1066                     <row>
1067                         <entry><emphasis>DateTime</emphasis></entry>
1068                         <entry>
1069                           そのロケールにおける日付、時刻のフォーマットを返します。
1070                           これは、指定した暦において日付と時刻を表示する方法を示すものです。
1071                           値を省略した場合はグレゴリオ暦を使用します。
1072                           単純に行うには
1073                           <link linkend="zend.date.introduction">Zend_Date</link>
1074                           を使用します。
1075                         </entry>
1076                     </row>
1077                     <row>
1078                         <entry><emphasis>DateItem</emphasis></entry>
1079                         <entry>指定した日付項目あるいは時刻項目に関するデフォルトフォーマットを返します。</entry>
1080                     </row>
1081                     <row>
1082                         <entry><emphasis>DateInterval</emphasis></entry>
1083                         <entry>
1084                             指定した日付・時刻フォーマットの間隔フォーマットを返します。
1085                             最初の値は暦のフォーマットで、通常は 'gregorian' となります。
1086                             二番目の値は間隔フォーマットで、
1087                             三番目の値は最大の差のトークンです。
1088                             たとえば、array('gregorian', 'yMMMM', 'y') は間隔フォーマット
1089                             'yMMMM' で、最大の差は 'y' となります。
1090                         </entry>
1091                     </row>
1092                     <row>
1093                         <entry><emphasis>Field</emphasis></entry>
1094                         <entry>
1095                           日付フィールドの翻訳を返します。
1096                           これは、カレンダーや日付で 'month' や 'year'
1097                           といった文字列を各国語で表示する際に使用します。
1098                           返したいフィールドを文字列で指定する必要があります。
1099                           この場合はグレゴリオ暦を使用します。
1100                           他の暦におけるフィールドを取得するには、
1101                           <code>array('calendar', 'date field')</code>
1102                           のような配列を指定します。
1103                         </entry>
1104                     </row>
1105                     <row>
1106                         <entry><emphasis>Relative</emphasis></entry>
1107                         <entry>
1108                           相対日付の翻訳を返します。
1109                           'yesterday' や 'tomorrow'
1110                           といった文字列を各国語で表示する際に使用します。
1111                           返したい日付を表す数値 (明日を基準とした相対値) を指定する必要があります。
1112                           昨日はら '-1'、明日なら '1' といったようになります。
1113                           この場合はグレゴリオ暦を使用します。
1114                           他の暦における相対日を取得するには、
1115                           <code>array('calendar', 'relative days')</code>
1116                           のような配列を指定します。
1117                           単純に行うには
1118                           <link linkend="zend.date.introduction">Zend_Date</link>
1119                           を使用します。
1120                         </entry>
1121                     </row>
1122                     <row>
1123                         <entry><emphasis>DecimalNumber</emphasis></entry>
1124                         <entry>
1125                           指定したロケールにおける十進数値のフォーマットを返します。
1126                           単純に行うには
1127                           <link linkend="zend.locale.parsing">Zend_Locale_Format</link>
1128                           を使用します。
1129                         </entry>
1130                     </row>
1131                     <row>
1132                         <entry><emphasis>ScientificNumber</emphasis></entry>
1133                         <entry>指定したロケールにおける科学記法の数値フォーマットを返します。</entry>
1134                     </row>
1135                     <row>
1136                         <entry><emphasis>PercentNumber</emphasis></entry>
1137                         <entry>指定したロケールにおけるパーセンテージの数値フォーマットを返します。</entry>
1138                     </row>
1139                     <row>
1140                         <entry><emphasis>CurrencyNumber</emphasis></entry>
1141                         <entry>
1142                           指定したロケールにおける通貨の数値フォーマットを返します。
1143                           単純に行うには
1144                           <link linkend="zend.currency.introduction">Zend_Currency</link>
1145                           を使用します。
1146                         </entry>
1147                     </row>
1148                     <row>
1149                         <entry><emphasis>NameToCurrency</emphasis></entry>
1150                         <entry>
1151                           指定した通貨の翻訳を返します。
1152                           通貨は <acronym>ISO</acronym> フォーマットで指定する必要があります。
1153                           たとえば、通貨 'euro' を表すには 'EUR' と指定します。
1154                           単純に行うには
1155                           <link linkend="zend.currency.introduction">Zend_Currency</link>
1156                           を使用します。
1157                         </entry>
1158                     </row>
1159                     <row>
1160                         <entry><emphasis>CurrencyToName</emphasis></entry>
1161                         <entry>
1162                           指定した地域化名に対応する通貨を返します。
1163                           単純に行うには
1164                           <link linkend="zend.currency.introduction">Zend_Currency</link>
1165                           を使用します。
1166                         </entry>
1167                     </row>
1168                     <row>
1169                         <entry><emphasis>CurrencySymbol</emphasis></entry>
1170                         <entry>
1171                           指定したロケールにおいて使用する通貨記号を返します。
1172                           すべての通貨に記号が存在するわけではありません。
1173                           単純に行うには
1174                           <link linkend="zend.currency.introduction">Zend_Currency</link>
1175                           を使用します。
1176                         </entry>
1177                     </row>
1178                     <row>
1179                         <entry><emphasis>Question</emphasis></entry>
1180                         <entry>
1181                           肯定 ('yes') および否定 ('no')
1182                           に対応する地域化した文字列を返します。
1183                           'yes' あるいは 'no' を値として指定すると、対応する文字列を取得できます。
1184                           単純に行うには
1185                           <link linkend="zend.locale.getquestion">Zend_Locale の getQuestion メソッド</link>
1186                           を使用します。
1187                         </entry>
1188                     </row>
1189                     <row>
1190                         <entry><emphasis>CurrencyFraction</emphasis></entry>
1191                         <entry>
1192                           指定した通貨で使用する小数点以下の桁数を返します。
1193                           通貨は <acronym>ISO</acronym> 形式で指定する必要があります。
1194                           単純に行うには
1195                           <link linkend="zend.currency.introduction">Zend_Currency</link>
1196                           を使用します。
1197                         </entry>
1198                     </row>
1199                     <row>
1200                         <entry><emphasis>CurrencyRounding</emphasis></entry>
1201                         <entry>
1202                           指定した通貨の丸め方式を返します。
1203                           通貨は <acronym>ISO</acronym> 形式で指定する必要があります。
1204                           通貨を省略した場合は、デフォルトの丸め規則を返します。
1205                           単純に行うには
1206                           <link linkend="zend.currency.introduction">Zend_Currency</link>
1207                           を使用します。
1208                         </entry>
1209                     </row>
1210                     <row>
1211                         <entry><emphasis>CurrencyToRegion</emphasis></entry>
1212                         <entry>
1213                           指定した地域の通貨を返します。
1214                           地域コードは <constant>ISO3166</constant> 形式で指定する必要があります。
1215                           たとえばオーストリアは 'AT' となります。
1216                           単純に行うには
1217                           <link linkend="zend.currency.introduction">Zend_Currency</link>
1218                           を使用します。
1219                         </entry>
1220                     </row>
1221                     <row>
1222                         <entry><emphasis>RegionToCurrency</emphasis></entry>
1223                         <entry>
1224                           その通貨を使用している地域を返します。
1225                           通貨は <constant>ISO4217</constant> のコードで指定する必要があります。
1226                           たとえばユーロは 'EUR' となります。
1227                           その通貨が複数の地域で用いられている場合は、
1228                           空白で区切った形式になります。
1229                           単純に行うには
1230                           <link linkend="zend.currency.introduction">Zend_Currency</link>
1231                           を使用します。
1232                         </entry>
1233                     </row>
1234                     <row>
1235                         <entry><emphasis>RegionToTerritory</emphasis></entry>
1236                         <entry>
1237                           指定した領域の地域を返します。
1238                           領域は <constant>ISO4217</constant> 形式の文字列で指定する必要があります。
1239                           たとえば '001' は世界を現します。
1240                           この領域内の地域が空白区切り形式となります。
1241                         </entry>
1242                     </row>
1243                     <row>
1244                         <entry><emphasis>TerritoryToRegion</emphasis></entry>
1245                         <entry>
1246                           指定した地域が存在する領域を返します。
1247                           地域は <constant>ISO3166</constant> 形式の文字列で指定する必要があります。
1248                           たとえばオーストリアは 'AT' となります。
1249                           その地域が複数の領域にまたがる場合は、
1250                           空白で区切った形式になります。
1251                         </entry>
1252                     </row>
1253                     <row>
1254                         <entry><emphasis>ScriptToLanguage</emphasis></entry>
1255                         <entry>
1256                           指定した言語で用いる文字を返します。
1257                           言語は <acronym>ISO</acronym> 言語コードで指定する必要があります。
1258                           たとえば英語は 'en' となります。
1259                           その言語で複数の文字が用いられる場合は、
1260                           空白で区切った形式になります。
1261                         </entry>
1262                     </row>
1263                     <row>
1264                         <entry><emphasis>LanguageToScript</emphasis></entry>
1265                         <entry>
1266                           指定した文字が用いられている言語を返します。
1267                           文字は <acronym>ISO</acronym> 文字コードで指定する必要があります。
1268                           たとえばラテン文字は 'Latn' となります。
1269                           その文字が複数の言語で用いられている場合は、
1270                           空白で区切った形式になります。
1271                         </entry>
1272                     </row>
1273                     <row>
1274                         <entry><emphasis>TerritoryToLanguage</emphasis></entry>
1275                         <entry>
1276                           指定した言語が用いられている領域を返します。
1277                           言語は <acronym>ISO</acronym> 言語コードで指定する必要があります。
1278                           たとえば英語は 'en' となります。
1279                           その言語が複数の領域で用いられる場合は、
1280                           空白で区切った形式になります。
1281                         </entry>
1282                     </row>
1283                     <row>
1284                         <entry><emphasis>LanguageToTerritory</emphasis></entry>
1285                         <entry>
1286                           指定した領域で用いられている言語の一覧を返します。
1287                           領域は <constant>ISO3166</constant> 形式のコードで指定する必要があります。
1288                           たとえばイタリアは 'IT' となります。
1289                           その言語が複数の領域で用いられる場合は、
1290                           空白で区切った形式になります。
1291                         </entry>
1292                     </row>
1293                     <row>
1294                         <entry><emphasis>TimezoneToWindows</emphasis></entry>
1295                         <entry>指定した Windows タイムゾーンに対応する <acronym>ISO</acronym> タイムゾーンを返します。</entry>
1296                     </row>
1297                     <row>
1298                         <entry><emphasis>WindowsToTimezone</emphasis></entry>
1299                         <entry>指定した <acronym>ISO</acronym> タイムゾーンに対応する Windows タイムゾーンを返します。</entry>
1300                     </row>
1301                     <row>
1302                         <entry><emphasis>TerritoryToTimezone</emphasis></entry>
1303                         <entry>指定した <acronym>ISO</acronym> タイムゾーンに対応する領域を返します。</entry>
1304                     </row>
1305                     <row>
1306                         <entry><emphasis>TimezoneToTerritory</emphasis></entry>
1307                         <entry>指定した領域に対応する <acronym>ISO</acronym> タイムゾーンを返します。</entry>
1308                     </row>
1309                     <row>
1310                         <entry><emphasis>CityToTimezone</emphasis></entry>
1311                         <entry>
1312                           指定した <acronym>ISO</acronym> タイムゾーンに対応する地域化した都市名を返します。
1313                           すべてのタイムゾーンが都市名に変換できるわけではありません。
1314                         </entry>
1315                     </row>
1316                     <row>
1317                         <entry><emphasis>TimezoneToCity</emphasis></entry>
1318                         <entry>
1319                           指定した地域化都市名に対応する <acronym>ISO</acronym> タイムゾーンを返します。
1320                           すべての都市名がタイムゾーンに対応しているわけではありません。
1321                         </entry>
1322                     </row>
1323                     <row>
1324                         <entry><emphasis>PhoneToTerritory</emphasis></entry>
1325                         <entry>
1326                             指定した領域 (地域) に対応する電話コードを返します。
1327                             領域コードは <constant>ISO3166</constant> 形式の文字列で指定する必要があります。
1328                             たとえばオーストリアは 'AT' となります。
1329                         </entry>
1330                     </row>
1331                     <row>
1332                         <entry><emphasis>TerritoryToPhone</emphasis></entry>
1333                         <entry>
1334                             電話コードが使われている領域 (地域) を返します。
1335                             電話コードは整数値で指定する必要があります。
1336                             たとえば '43' は +43 を表します。
1337                             ひとつの電話コードが複数の領域 (地域) で使われている場合は、
1338                             空白で区切った形式になります。
1339                         </entry>
1340                     </row>
1341                     <row>
1342                         <entry><emphasis>NumericToTerritory</emphasis></entry>
1343                         <entry>
1344                             指定した領域 (地域) に対応する 3 桁の数値コードを返します。
1345                             領域コードは <constant>ISO3166</constant> 形式の文字列で指定する必要があります。
1346                             たとえばオーストリアは 'AT' となります。
1347                         </entry>
1348                     </row>
1349                     <row>
1350                         <entry><emphasis>TerritoryToNumeric</emphasis></entry>
1351                         <entry>
1352                             3 桁の数値コードに対応する領域 (地域) を返します。
1353                             3 桁の数値コードは整数値で指定する必要があります。
1354                             たとえば '43' のようになります。
1355                         </entry>
1356                     </row>
1357                     <row>
1358                         <entry><emphasis>Alpha3ToTerritory</emphasis></entry>
1359                         <entry>
1360                             指定した領域 (地域) に対応する 3 桁の文字コードを返します。
1361                             領域コードは <constant>ISO3166</constant> 形式の文字列で指定する必要があります。
1362                             たとえばオーストリアは 'AT' となります。
1363                         </entry>
1364                     </row>
1365                     <row>
1366                         <entry><emphasis>TerritoryToAlpha3</emphasis></entry>
1367                         <entry>3 桁の文字コードに対応する領域 (地域) を返します。</entry>
1368                     </row>
1369                     <row>
1370                         <entry><emphasis>PostalToTerritory</emphasis></entry>
1371                         <entry>
1372                             指定した領域に対応する郵便番号の正規表現を返します。
1373                             領域は <constant>ISO4217</constant> 形式の文字列で指定する必要があります。
1374                             たとえば世界全体は '001' となります。
1375                         </entry>
1376                     </row>
1377                     <row>
1378                         <entry><emphasis>NumberingSystem</emphasis></entry>
1379                         <entry>
1380                             桁表記に使用する文字を返します。
1381                         </entry>
1382                     </row>
1383                     <row>
1384                         <entry><emphasis>FallbackToChar</emphasis></entry>
1385                         <entry>
1386                             よく使われる unicode 文字の置換用文字を返します。
1387                             これを使用して、たとえば "©" を "(C)" に置換したりします。
1388                         </entry>
1389                     </row>
1390                     <row>
1391                         <entry><emphasis>CharToFallback</emphasis></entry>
1392                         <entry>
1393                             よく使われる置換用文字に対応する unicode 文字を返します。
1394                             これを使用して、たとえば "(C)" を "©" に置換したりします。
1395                         </entry>
1396                     </row>
1397                     <row>
1398                         <entry><emphasis>LocaleUpgrade</emphasis></entry>
1399                         <entry>
1400                             指定した言語に関するロケールの依存性を返します。
1401                             これを使用して、この言語を完全修飾形式のロケールに変換します。
1402                         </entry>
1403                     </row>
1404                     <row>
1405                         <entry><emphasis>Unit</emphasis></entry>
1406                         <entry>
1407                             地域化したカレンダーの単位を帰します。
1408                             これを使用して、"day" や "month" などといった文字列を自動的に翻訳します。
1409                             最初のパラメータには型を、そして次のパラメータには数を指定しなければなりません。
1410                         </entry>
1411                     </row>
1412                 </tbody>
1413             </tgroup>
1414         </table>
1416         <note>
1417             <para>
1418                 Zend Framework 1.5 では、いくつかの古い型の名前が変わりました。
1419                 新しい型が追加されたこと、スペルが間違ったいたこと、
1420                 そして使いやすさを考慮したことなどが理由です。
1421                 変更内容は以下の表でご確認ください。
1422             </para>
1423         </note>
1425         <table id="zend.locale.getdata.table-3">
1426             <title>Zend Framework 1.0 と 1.5 の違い</title>
1427             <tgroup cols="2">
1428                 <thead>
1429                     <row>
1430                         <entry>古い型</entry>
1431                         <entry>新しい型</entry>
1432                     </row>
1433                 </thead>
1434                 <tbody>
1435                     <row>
1436                         <entry>Country</entry>
1437                         <entry>Territory (値 '2')</entry>
1438                     </row>
1439                     <row>
1440                         <entry>Calendar</entry>
1441                         <entry>Type (値 'calendar')</entry>
1442                     </row>
1443                     <row>
1444                         <entry>Month_Short</entry>
1445                         <entry>Month (値 array('gregorian', 'format', 'abbreviated')</entry>
1446                     </row>
1447                     <row>
1448                         <entry>Month_Narrow</entry>
1449                         <entry>Month (値 array('gregorian', 'stand-alone', 'narrow')</entry>
1450                     </row>
1451                     <row>
1452                         <entry>Month_Complete</entry>
1453                         <entry>Months</entry>
1454                     </row>
1455                     <row>
1456                         <entry>Day_Short</entry>
1457                         <entry>Day (値 array('gregorian', 'format', 'abbreviated')</entry>
1458                     </row>
1459                     <row>
1460                         <entry>Day_Narrow</entry>
1461                         <entry>Day (値 array('gregorian', 'stand-alone', 'narrow')</entry>
1462                     </row>
1463                     <row>
1464                         <entry>DateFormat</entry>
1465                         <entry>Date</entry>
1466                     </row>
1467                     <row>
1468                         <entry>TimeFormat</entry>
1469                         <entry>Time</entry>
1470                     </row>
1471                     <row>
1472                         <entry>Timezones</entry>
1473                         <entry>CityToTimezone</entry>
1474                     </row>
1475                     <row>
1476                         <entry>Currency</entry>
1477                         <entry>NameToCurrency</entry>
1478                     </row>
1479                     <row>
1480                         <entry>Currency_Sign</entry>
1481                         <entry>CurrencySymbol</entry>
1482                     </row>
1483                     <row>
1484                         <entry>Currency_Detail</entry>
1485                         <entry>CurrencyToRegion</entry>
1486                     </row>
1487                     <row>
1488                         <entry>Territory_Detail</entry>
1489                         <entry>TerritoryToRegion</entry>
1490                     </row>
1491                     <row>
1492                         <entry>Language_Detail</entry>
1493                         <entry>LanguageToTerritory</entry>
1494                     </row>
1495                 </tbody>
1496             </tgroup>
1497         </table>
1499         <para>
1500             以下の例は、さまざまな言語でのものの名前を取得する方法を示すものです。
1501         </para>
1503         <example id="zend.locale.getdata.example-3">
1504             <title>getTranslationList</title>
1505             <programlisting language="php"><![CDATA[
1506 // すべての国名をドイツ語で表示します
1507 print_r(Zend_Locale::getTranslationList('country', 'de'));
1508 ]]></programlisting>
1509         </example>
1511         <para>
1512             次の例は、ある言語の名前を別の言語でどのようにいうのかを、
1513             二文字の <acronym>ISO</acronym> 国コードを知らない場合に調べるものです。
1514         </para>
1516         <example id="zend.locale.getdata.example-4">
1517             <title>国の名前を、ある言語から別の言語に変換する</title>
1518             <programlisting language="php"><![CDATA[
1519 $code2name = Zend_Locale::getLanguageTranslationList('en_US');
1520 $name2code = array_flip($code2name);
1521 $frenchCode = $name2code['French'];
1522 echo Zend_Locale::getLanguageTranslation($frenchCode, 'de_AT');
1523 // 出力は、「フランス語」を表すドイツ語の名前になります
1524 ]]></programlisting>
1525         </example>
1527         <para>
1528             <classname>Zend_Locale</classname> で使用できるすべての言語の一覧を、それぞれの言語での表記で取得するには、
1529             以下の例をウェブページで使用してみましょう。
1530             同様に <methodname>getCountryTranslationList()</methodname> および
1531             <methodname>getCountryTranslation()</methodname> を使用すると、
1532             あなたのネイティブ言語での地域名と別の言語での地域名の対応表を作成できます。
1533             <code>try .. catch</code> ブロックで、
1534             存在しないロケールを使用した場合の例外を処理するようにしましょう。
1535             すべての言語がすべてのロケールに対応しているわけではありません。
1536             この例では、例外を無視することで、
1537             スクリプトが途中で終わってしまうことを防いでいます。
1538         </para>
1540         <example id="zend.locale.getdata.example-6">
1541             <title>すべての言語を、その国のネイティブ言語で書き出す</title>
1542             <programlisting language="php"><![CDATA[
1543 $list = Zend_Locale::getLanguageTranslationList('auto');
1545 foreach($list as $language => $content) {
1546     try {
1547         $output = Zend_Locale::getLanguageTranslation($language, $language);
1548         if (is_string($output)) {
1549             print "\n<br>[".$language."] ".$output;
1550         }
1551     } catch (Exception $e) {
1552         continue;
1553     }
1555 ]]></programlisting>
1556         </example>
1558     </sect2>
1560     <sect2 id="zend.locale.getquestion">
1562         <title>"yes" および "no" に対応する翻訳の取得</title>
1564         <para>
1565             プログラム上で、ユーザに "はい" あるいは "いいえ"
1566             で答えてもらうことがよくあります。
1567             <methodname>getQuestion()</methodname> を使用すると、
1568             ユーザに問い合わせるときに使用する単語あるいは正規表現文字列を含む配列を、
1569             特定の $locale (デフォルトは、そのオブジェクトのロケール)
1570             にあわせて返します。
1571             返される配列の中身は次のようになります。
1572         </para>
1574         <itemizedlist>
1575             <listitem>
1576                 <para>
1577                     <emphasis>yes および no</emphasis>:
1578                     yes および no に対応する一般的な文字列表現です。
1579                     これは、yesarray および noarray の最初の要素でもあり、もっとも一般的な内容です。
1580                 </para>
1582                 <para>
1583                     <emphasis>yesarray および noarray</emphasis>:
1584                     yes および no に対応する内容をすべて含む配列です。
1585                     言語によっては単に「はい」「いいえ」以外の返答を持つものもあります。
1586                     一般に、これは完全な文字列とその省略形になります。
1587                 </para>
1589                 <para>
1590                     <emphasis>yesexpr および noexpr</emphasis>:
1591                     正規表現で、ユーザの回答から yes か no かを判定できるようにします。
1592                 </para>
1593             </listitem>
1594         </itemizedlist>
1596         <para>
1597             これらのすべての情報は当然地域化されており、
1598             設定されているロケールによって変化します。
1599             以下の例で、どのような情報が取得できるのかを確認してみましょう。
1600         </para>
1602         <example id="zend.locale.getquestion.example-1">
1603             <title>getQuestion()</title>
1604             <programlisting language="php"><![CDATA[
1605 $locale = new Zend_Locale();
1606 // 設問の文字列
1607 print_r($locale->getQuestion('de'));
1609 - - - 出力 - - -
1611 Array
1613     [yes] => ja
1614     [no] => nein
1615     [yesarray] => Array
1616         (
1617             [0] => ja
1618             [1] => j
1619         )
1621     [noarray] => Array
1622         (
1623             [0] => nein
1624             [1] => n
1625         )
1627     [yesexpr] => ^([jJ][aA]?)|([jJ]?)
1628     [noexpr] => ^([nN]([eE][iI][nN])?)|([nN]?)
1630 ]]></programlisting>
1631         </example>
1633         <note>
1634             <para>
1635                 1.0.3 までは、<emphasis>yesabbr</emphasis>
1636                 もロケールデータから取得可能でした。
1637                 1.5 以降、この情報は単体では存在しません。しかし、同じ情報を
1638                 <emphasis>yesarray</emphasis>
1639                 から取得できます。
1640             </para>
1641         </note>
1642     </sect2>
1644     <sect2 id="zend.locale.getlocalelist">
1646         <title>既知のロケールの一覧の取得</title>
1648         <para>
1649             すべての既知のロケールの一覧を取得したいこともあるでしょう。
1650             たとえば、ロケール選択用の select 要素を作成する場合などに必要となるはずです。
1651             このようなときには、静的メソッド
1652             <methodname>getLocaleList()</methodname> を使用します。
1653             このメソッドは、すべての既知のロケールの一覧を返します。
1654         </para>
1656         <example id="zend.locale.getlocalelist.example-1">
1657             <title>getLocaleList()</title>
1658             <programlisting language="php"><![CDATA[
1659 $localelist = Zend_Locale::getLocaleList();
1660 ]]></programlisting>
1661         </example>
1663         <note>
1664             <para>
1665                 返された配列のキーがロケール名となっていることに注意しましょう。
1666                 キーに対応する値は、常に <constant>TRUE</constant> です。
1667             </para>
1668         </note>
1669     </sect2>
1671     <sect2 id="zend.locale.detection">
1673         <title>ロケールの検出</title>
1675         <para>
1676             指定した入力がロケールかどうかを知りたい場合は、静的メソッド
1677             <methodname>isLocale()</methodname> を使用します。
1678             このメソッドの最初のパラメータとして、調べたい文字列を指定します。
1679         </para>
1681         <example id="zend.locale.detection.example-1">
1682             <title>シンプルなロケールの検出</title>
1683             <programlisting language="php"><![CDATA[
1684 $input = 'to_RU';
1685 if (Zend_Locale::isLocale($input)) {
1686     print "'{$input}' is a locale";
1687 } else {
1688     print "Sorry... the given input is no locale";
1690 ]]></programlisting>
1691         </example>
1693         <para>
1694             ごらんのとおり、このメソッドの出力は常に boolean となります。
1695             このメソッドをコールして唯一例外が発生するのは、
1696             システム側でロケールを一切提供しておらず、Zend Framework
1697             がロケールを自動検出できなかった場合です。
1698             通常、このような場合は、ご利用の OS 上で <acronym>PHP</acronym> の
1699             <methodname>setlocale()</methodname> がうまく動作しないでしょう。
1700         </para>
1702         <para>
1703             指定したロケールに地域部が存在しない場合でも、
1704             自動的に地域部をはずして検出してくれることにもお気づきでしょう。
1705             先ほどの例では、言語 <code>'to'</code> は地域
1706             <code>'RU'</code> 内に存在しません。しかし、返される結果は <constant>TRUE</constant> となります。
1707             <classname>Zend_Locale</classname> は指定した入力を処理できるからです。
1708         </para>
1710         <para>
1711             しかし、この自動変換機能がじゃまになることもあるでしょう。そんな場合には
1712             <methodname>isLocale()</methodname> の 2 番目のパラメータを使用します。
1713             <code>strict</code> パラメータのデフォルトは
1714             <constant>FALSE</constant> で、自動変換を無効にするにはこれを <constant>TRUE</constant>
1715             とします。
1716         </para>
1718         <example id="zend.locale.detection.example-2">
1719             <title>厳格なロケール検出</title>
1720             <programlisting language="php"><![CDATA[
1721 $input = 'to_RU';
1722 if (Zend_Locale::isLocale($input, true)) {
1723     print "'{$input}' is a locale";
1724 } else {
1725     print "Sorry... the given input is no locale";
1727 ]]></programlisting>
1728         </example>
1730         <para>
1731             これで指定した文字列がロケールかどうかを判別できるようになったので、
1732             自作のクラスでロケール対応の処理ができるようになりました。
1733             しかし、すでにお気づきかもしれませんが、毎回のように次のような
1734             15 行のコードを書かなければならないことになってしまいます。
1735         </para>
1737         <example id="zend.locale.detection.example-3">
1738             <title>ロケールに対応した振る舞いの実装</title>
1739             <programlisting language="php"><![CDATA[
1740 if ($locale === null) {
1741     $locale = new Zend_Locale();
1744 if (!Zend_Locale::isLocale($locale, true, false)) {
1745     if (!Zend_Locale::isLocale($locale, false, false)) {
1746         throw new Zend_Locale_Exception(
1747             "The locale '$locale' is no known locale");
1748     }
1750     $locale = new Zend_Locale($locale);
1753 if ($locale instanceof Zend_Locale) {
1754     $locale = $locale->toString();
1756 ]]></programlisting>
1757         </example>
1759         <para>
1760             Zend Framework 1.8 で、静的メソッド <methodname>findLocale()</methodname>
1761             が追加されました。これは、現在使用中のロケール文字列を返します。
1762             このメソッドは、次のような処理を行います。
1763         </para>
1765         <itemizedlist>
1766             <listitem>
1767                 <para>
1768                     指定した文字列がロケールかどうかを調べる
1769                 </para>
1770             </listitem>
1771             <listitem>
1772                 <para>
1773                     指定した地域にロケールが存在しない場合は地域部をはずす
1774                 </para>
1775             </listitem>
1777             <!-- TODO : to be translated -->
1778             <listitem>
1779                 <para>
1780                     Upgrades the locale when it is detected as region without language
1781                 </para>
1782             </listitem>
1784             <listitem>
1785                 <para>
1786                     入力を省略した場合は、それまでにアプリケーションで設定されていたロケールを返す
1787                 </para>
1788             </listitem>
1789             <listitem>
1790                 <para>
1791                     ここまでの検出に失敗した場合はブラウザのロケールを検出する
1792                 </para>
1793             </listitem>
1794             <listitem>
1795                 <para>
1796                     ここまでの検出に失敗した場合は環境変数のロケールを検出する
1797                 </para>
1798             </listitem>
1799             <listitem>
1800                 <para>
1801                     ここまでの検出に失敗した場合はフレームワークのロケールを検出する
1802                 </para>
1803             </listitem>
1804             <listitem>
1805                 <para>
1806                     常に、見つかったロケールを表す文字列を返す
1807                 </para>
1808             </listitem>
1809         </itemizedlist>
1811         <para>
1812             次の例は、さきほどのコードをたったひとつのメソッドコールで置き換えるものです。
1813         </para>
1815         <example id="zend.locale.detection.example-4">
1816             <title>Zend Framework 1.8 以降でのロケール対応の振る舞いの実装</title>
1817             <programlisting language="php"><![CDATA[
1818 $locale = Zend_Locale::findLocale($inputstring);
1819 ]]></programlisting>
1820         </example>
1821     </sect2>
1822 </sect1>
1823 <!--
1824 vim:se ts=4 sw=4 et: