Przeglądaj źródła

[DOCUMENTATION]Japanese sync 18816, 18682

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@18831 44c647ce-9c0f-0410-b52a-842ac1e357ba
yoshida@zend.co.jp 16 lat temu
rodzic
commit
a3582a0294

+ 4 - 16
documentation/manual/ja/manual.xml.in

@@ -211,7 +211,6 @@
         <xi:include href="module_specs/Zend_File_Transfer-Filters.xml">
             <xi:fallback><xi:include href="../en/module_specs/Zend_File_Transfer-Filters.xml" /></xi:fallback>
         </xi:include>
-        <xi:include href="module_specs/Zend_File_Transfer-Migration.xml" />
     </chapter>
 
     <chapter id="zend.filter">
@@ -319,7 +318,6 @@
         <xi:include href="module_specs/Zend_Locale-Parsing.xml" />
         <xi:include href="module_specs/Zend_Locale-DatesTimes.xml" />
         <xi:include href="module_specs/Zend_Locale-AppendixLanguages.xml" />
-        <xi:include href="module_specs/Zend_Locale-Migration.xml" />
     </chapter>
 
     <chapter id="zend.log">
@@ -594,7 +592,6 @@
         <xi:include href="module_specs/Zend_Translate-Plurals.xml">
             <xi:fallback><xi:include href="../en/module_specs/Zend_Translate-Plurals.xml" /></xi:fallback>
         </xi:include>
-        <xi:include href="module_specs/Zend_Translate-Migration.xml" />
     </chapter>
     <chapter id="zend.uri">
         <title>Zend_Uri</title>
@@ -619,7 +616,6 @@
         <xi:include href="module_specs/Zend_View-Scripts.xml" />
         <xi:include href="module_specs/Zend_View-Helpers.xml" parse="xml" />
         <xi:include href="module_specs/Zend_View-Abstract.xml" />
-        <xi:include href="module_specs/Zend_View-Migration.xml" />
     </chapter>
     <chapter id="zend.wildfire">
         <title>Zend_Wildfire</title>
@@ -636,18 +632,10 @@
         <title>Zend Framework 移行上の注意</title>
         <xi:include href="ref/migration-110.xml" />
         <xi:include href="ref/migration-19.xml" />
-        <xi:include href="ref/migration-18.xml">
-            <xi:fallback><xi:include href="../en/ref/migration-18.xml" /></xi:fallback>
-        </xi:include>
-        <xi:include href="ref/migration-17.xml">
-            <xi:fallback><xi:include href="../en/ref/migration-17.xml" /></xi:fallback>
-        </xi:include>
-        <xi:include href="ref/migration-16.xml">
-            <xi:fallback><xi:include href="../en/ref/migration-16.xml" /></xi:fallback>
-        </xi:include>
-        <xi:include href="ref/migration-15.xml">
-            <xi:fallback><xi:include href="../en/ref/migration-15.xml" /></xi:fallback>
-        </xi:include>
+        <xi:include href="ref/migration-18.xml" />
+        <xi:include href="ref/migration-17.xml" />
+        <xi:include href="ref/migration-16.xml" />
+        <xi:include href="ref/migration-15.xml" />
         <xi:include href="ref/migration-10.xml">
             <xi:fallback><xi:include href="../en/ref/migration-10.xml" /></xi:fallback>
         </xi:include>

+ 0 - 399
documentation/manual/ja/module_specs/Zend_File_Transfer-Migration.xml

@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Reviewed: no -->
-<!-- EN-Revision: 17987 -->
-<sect1 id="zend.file.transfer.migration">
-
-    <title>以前のバージョンからの移行</title>
-
-    <para>
-        <classname>Zend_File_Transfer</classname> の <acronym>API</acronym> は日々変わっています。
-        <classname>Zend_File_Transfer</classname> やそのサブコンポーネントを
-        初期のバージョンから使っている方は、以下のガイドラインに従ってスクリプトを変更し、
-        新しい <acronym>API</acronym> にあわせましょう。
-    </para>
-
-    <sect2 id="zend.file.transfer.migration.fromonenineonetooneten">
-        <title>1.9 から 1.10 以降への移行</title>
-        <sect3 id="zend.file.transfer.migration.fromonenineonetooneten.mimetype">
-            <title>MimeType の検証</title>
-
-            <para>
-                セキュリティ上の理由から、
-                <classname>MimeType</classname>、<classname>ExcludeMimeType</classname>、
-                <classname>IsCompressed</classname> および <classname>IsImage</classname>
-                バリデータにおけるデフォルトのフォールバック機能を無効にしました。
-                つまり、<emphasis>fileInfo</emphasis> 拡張モジュールあるいは
-                <emphasis>magicMime</emphasis> 拡張モジュールがなければ、
-                検証が常に失敗するようになるということです。
-            </para>
-
-            <para>
-                ユーザ側から渡された <acronym>HTTP</acronym> フィールドを使用して入力を検証する必要がある場合は、
-                <methodname>enableHeaderCheck()</methodname> メソッドを使用すればこの機能を有効にできます。
-            </para>
-
-            <note>
-                <title>セキュリティに関するヒント</title>
-
-                <para>
-                    ユーザ側から渡された <acronym>HTTP</acronym>
-                    フィールドに依存するのはセキュリティ上のリスクとなることに注意しましょう。
-                    これは簡単に改ざんすることができ、悪意のあるファイルを受け取る可能性があります。
-                </para>
-            </note>
-
-            <example id="zend.file.transfer.migration.fromonenineonetooneten.example">
-                <title>HTTP フィールドの使用を許可する</title>
-
-                <programlisting language="php"><![CDATA[
-// 初期化時に
-$valid = new Zend_File_Transfer_Adapter_Http(array('headerCheck' => true);
-
-// あるいは後から
-$valid->enableHeaderCheck();
-]]></programlisting>
-        </example>
-        </sect3>
-    </sect2>
-
-    <sect2 id="zend.file.transfer.migration.fromonesixtooneseven">
-        <title>1.6 から 1.7 以降への移行</title>
-        <sect3 id="zend.file.transfer.migration.fromonesixtooneseven.validators">
-            <title>フィルタやバリデータを使用する際の変更点</title>
-
-            <para>
-                <classname>Zend_File_Transfer</classname> のバリデータが
-                <classname>Zend_Config</classname> と組み合わせて使えないという指摘がありました。
-                名前つき配列を使っていなかったからです。
-            </para>
-
-            <para>
-                そこで、<classname>Zend_File_Transfer</classname> 用のすべてのフィルタとバリデータを作り直しました。
-                古い構文でも動作しますがこれは非推奨となり、
-                設定せずに実行すると <acronym>PHP</acronym> の notice が発生するようになります。
-            </para>
-
-            <para>
-                次のリストは、パラメータの使用法に関する変更点をまとめたものです。
-            </para>
-
-            <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.rename">
-                <title>Rename フィルタ</title>
-
-                <itemizedlist>
-                    <listitem><para>
-                        古い形式の <acronym>API</acronym>: <classname>Zend_Filter_File_Rename($oldfile, $newfile, $overwrite)</classname>
-                    </para></listitem>
-
-                    <listitem><para>
-                        新しい形式の <acronym>API</acronym>: <methodname>Zend_Filter_File_Rename($options)</methodname>
-                        $options には次の配列キーを使えます。
-                        <emphasis>source</emphasis> ($oldfile と同等)、
-                        <emphasis>target</emphasis> ($newfile と同等)、
-                        <emphasis>overwrite</emphasis> ($overwrite と同等)
-                    </para></listitem>
-                </itemizedlist>
-
-                <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.rename.example">
-                    <title>rename フィルタの 1.6 から 1.7 での変更点</title>
-
-                    <programlisting language="php"><![CDATA[
-// 1.6 の例
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addFilter('Rename',
-                   array('/path/to/oldfile', '/path/to/newfile', true));
-
-// 1.7 の例
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addFilter('Rename',
-                   array('source' => '/path/to/oldfile',
-                         'target' => '/path/to/newfile',
-                         'overwrite' => true));
-]]></programlisting>
-                </example>
-            </sect4>
-
-            <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.count">
-                <title>Count バリデータ</title>
-
-                <itemizedlist>
-                    <listitem><para>
-                        古い形式の <acronym>API</acronym>: <methodname>Zend_Validate_File_Count($min, $max)</methodname>
-                    </para></listitem>
-
-                    <listitem><para>
-                        新しい形式の <acronym>API</acronym>: <methodname>Zend_Validate_File_Count($options)</methodname>
-                        $options には次の配列キーを使えます。
-                        <emphasis>min</emphasis> ($min と同等)、
-                        <emphasis>max</emphasis> ($max と同等)
-                    </para></listitem>
-                </itemizedlist>
-
-                <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.count.example">
-                    <title>count バリデータの 1.6 から 1.7 での変更点</title>
-
-                    <programlisting language="php"><![CDATA[
-// 1.6 の例
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addValidator('Count',
-                      array(2, 3));
-
-// 1.7 の例
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addValidator('Count',
-                      false,
-                      array('min' => 2,
-                            'max' => 3));
-]]></programlisting>
-                </example>
-            </sect4>
-
-            <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.extension">
-                <title>Extension バリデータ</title>
-
-                <itemizedlist>
-                    <listitem><para>
-                        古い形式の <acronym>API</acronym>: <classname>Zend_Validate_File_Extension($extension, $case)</classname>
-                    </para></listitem>
-
-                    <listitem><para>
-                        新しい形式の <acronym>API</acronym>: <methodname>Zend_Validate_File_Extension($options)</methodname>
-                        $options には次の配列キーを使えます。
-                        <emphasis>*</emphasis> ($extension と同等、任意の他のキーを使用可能)、
-                        <emphasis>case</emphasis> ($case と同等)
-                    </para></listitem>
-                </itemizedlist>
-
-                <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.extension.example">
-                    <title>extension バリデータの 1.6 から 1.7 での変更点</title>
-
-                    <programlisting language="php"><![CDATA[
-// 1.6 の例
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addValidator('Extension',
-                      array('jpg,gif,bmp', true));
-
-// 1.7 の例
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addValidator('Extension',
-                      false,
-                      array('extension1' => 'jpg,gif,bmp',
-                            'case' => true));
-]]></programlisting>
-                </example>
-            </sect4>
-
-            <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.filessize">
-                <title>FilesSize バリデータ</title>
-
-                <itemizedlist>
-                    <listitem><para>
-                        古い形式の <acronym>API</acronym>: <classname>Zend_Validate_File_FilesSize($min, $max, $bytestring)</classname>
-                    </para></listitem>
-
-                    <listitem><para>
-                        新しい形式の <acronym>API</acronym>: <methodname>Zend_Validate_File_FilesSize($options)</methodname>
-                        $options には次の配列キーを使えます。
-                        <emphasis>min</emphasis> ($min と同等)、
-                        <emphasis>max</emphasis> ($max と同等)、
-                        <emphasis>bytestring</emphasis> ($bytestring と同等)
-                    </para></listitem>
-                </itemizedlist>
-
-                <para>
-                    さらに <methodname>useByteString()</methodname> メソッドのシグネチャも変わりました。
-                    このメソッドの使用法は、
-                    そのバリデータが生成するメッセージでバイト文字列を使うことを想定しているかどうかを調べるだけになりました。
-                    フラグの値を設定するには
-                    <methodname>setUseByteString()</methodname> メソッドを使用します。
-                </para>
-
-                <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.filessize.example">
-                    <title>filessize バリデータの 1.6 から 1.7 での変更点</title>
-
-                    <programlisting language="php"><![CDATA[
-// 1.6 の例
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addValidator('FilesSize',
-                   array(100, 10000, true));
-
-// 1.7 の例
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addValidator('FilesSize',
-                      false,
-                      array('min' => 100,
-                            'max' => 10000,
-                            'bytestring' => true));
-
-// 1.6 の例
-$upload->useByteString(true); // set flag
-
-// 1.7 の例
-$upload->setUseByteSting(true); // set flag
-]]></programlisting>
-                </example>
-            </sect4>
-
-            <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.hash">
-                <title>Hash バリデータ</title>
-
-                <itemizedlist>
-                    <listitem><para>
-                        古い形式の <acronym>API</acronym>: <classname>Zend_Validate_File_Hash($hash, $algorithm)</classname>
-                    </para></listitem>
-
-                    <listitem><para>
-                        新しい形式の <acronym>API</acronym>: <methodname>Zend_Validate_File_Hash($options)</methodname>
-                        $options には次の配列キーを使えます。
-                        <emphasis>*</emphasis> ($hash と同等、任意の他のキーを使用可能)、
-                        <emphasis>algorithm</emphasis> ($algorithm と同等)、
-                    </para></listitem>
-                </itemizedlist>
-
-                <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.hash.example">
-                    <title>hash バリデータの 1.6 から 1.7 での変更点</title>
-
-                    <programlisting language="php"><![CDATA[
-// 1.6 の例
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addValidator('Hash',
-                   array('12345', 'md5'));
-
-// 1.7 の例
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addValidator('Hash',
-                      false,
-                      array('hash1' => '12345',
-                            'algorithm' => 'md5'));
-]]></programlisting>
-                </example>
-            </sect4>
-
-            <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.imagesize">
-                <title>ImageSize バリデータ</title>
-
-                <itemizedlist>
-                    <listitem><para>
-                        古い形式の <acronym>API</acronym>: <classname>Zend_Validate_File_ImageSize($minwidth, $minheight, $maxwidth, $maxheight)</classname>
-                    </para></listitem>
-
-                    <listitem><para>
-                        新しい形式の <acronym>API</acronym>: <methodname>Zend_Validate_File_FilesSize($options)</methodname>
-                        $options には次の配列キーを使えます。
-                        <emphasis>minwidth</emphasis> ($minwidth と同等)、
-                        <emphasis>maxwidth</emphasis> ($maxwidth と同等)、
-                        <emphasis>minheight</emphasis> ($minheight と同等)、
-                        <emphasis>maxheight</emphasis> ($maxheight と同等)
-                    </para></listitem>
-                </itemizedlist>
-
-                <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.imagesize.example">
-                    <title>imagesize バリデータの 1.6 から 1.7 での変更点</title>
-
-                    <programlisting language="php"><![CDATA[
-// 1.6 の例
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addValidator('ImageSize',
-                      array(10, 10, 100, 100));
-
-// 1.7 の例
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addValidator('ImageSize',
-                      false,
-                      array('minwidth' => 10,
-                            'minheight' => 10,
-                            'maxwidth' => 100,
-                            'maxheight' => 100));
-]]></programlisting>
-                </example>
-            </sect4>
-
-            <sect4 id="zend.file.transfer.migration.fromonesixtooneseven.validators.size">
-                <title>Size バリデータ</title>
-
-                <itemizedlist>
-                    <listitem><para>
-                        古い形式の <acronym>API</acronym>: <classname>Zend_Validate_File_Size($min, $max, $bytestring)</classname>
-                    </para></listitem>
-
-                    <listitem><para>
-                        新しい形式の <acronym>API</acronym>: <methodname>Zend_Validate_File_Size($options)</methodname>
-                        $options には次の配列キーを使えます。
-                        <emphasis>min</emphasis> ($min と同等)、
-                        <emphasis>max</emphasis> ($max と同等)、
-                        <emphasis>bytestring</emphasis> ($bytestring と同等)
-                    </para></listitem>
-                </itemizedlist>
-
-                <example id="zend.file.transfer.migration.fromonesixonetooneseven.validators.size.example">
-                    <title>size バリデータの 1.6 から 1.7 での変更点</title>
-
-                    <programlisting language="php"><![CDATA[
-// 1.6 の例
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addValidator('Size',
-                      array(100, 10000, true));
-
-// 1.7 の例
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addValidator('Size',
-                      false,
-                      array('min' => 100,
-                            'max' => 10000,
-                            'bytestring' => true));
-]]></programlisting>
-                </example>
-            </sect4>
-        </sect3>
-    </sect2>
-
-    <sect2 id="zend.file.transfer.migration.fromonesixonetoonesixtwo">
-        <title>1.6.1 から 1.6.2 以降への移行</title>
-        <sect3 id="zend.file.transfer.migration.fromonesixonetoonesixtwo.validators">
-            <title>バリデータを使う際の変更点</title>
-
-            <para>
-                <classname>Zend_File_Transfer</classname> のバリデータが
-                <classname>Zend_Form</classname> のデフォルトのものと同じようには動作しないという指摘がありました。
-                <classname>Zend_Form</classname> では <varname>$breakChainOnFailure</varname>
-                パラメータを利用でき、検証エラーが発生した際に
-                それ以降のバリデータを動作させないようにすることができます。
-            </para>
-
-            <para>
-                そこで、<classname>Zend_File_Transfer</classname>
-                の既存のバリデータにもこのパラメータを追加することにしました。
-            </para>
-
-            <itemizedlist>
-                <listitem><para>
-                    古い形式の <acronym>API</acronym>: <methodname>addValidator($validator, $options, $files)</methodname>.
-                </para></listitem>
-
-                <listitem><para>
-                    新しい形式の <acronym>API</acronym>: <methodname>addValidator($validator, $breakChainOnFailure, $options, $files)</methodname>.
-                </para></listitem>
-            </itemizedlist>
-
-            <para>
-                既存のスクリプトを新しい <acronym>API</acronym> に移行するには、バリデータの定義の後に
-                <constant>FALSE</constant> を追加します。
-            </para>
-
-            <example id="zend.file.transfer.migration.fromonesixonetoonesixtwo.example">
-                <title>ファイルバリデータを 1.6.1 から 1.6.2 に移行する方法</title>
-
-                <programlisting language="php"><![CDATA[
-// 1.6.1 での例
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addValidator('FilesSize', array('1B', '100kB'));
-
-// 同じ例を 1.6.2 以降用にしたもの
-// boolean false が追加されていることに注意しましょう
-$upload = new Zend_File_Transfer_Adapter_Http();
-$upload->addValidator('FilesSize', false, array('1B', '100kB'));
-]]></programlisting>
-        </example>
-        </sect3>
-    </sect2>
-</sect1>

+ 0 - 227
documentation/manual/ja/module_specs/Zend_Locale-Migration.xml

@@ -1,227 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Reviewed: no -->
-<!-- EN-Revision: 17175 -->
-<sect1 id="zend.locale.migration">
-
-    <title>以前のバージョンからの移行</title>
-
-    <para>
-        <classname>Zend_Locale</classname> の <acronym>API</acronym> は日々変わっています。
-        <classname>Zend_Locale</classname> やそのサブコンポーネントを
-        初期のバージョンから使っている方は、以下のガイドラインに従ってスクリプトを変更し、
-        新しい <acronym>API</acronym> にあわせましょう。
-    </para>
-
-    <sect2 id="zend.locale.migration.fromoneeighttoonenine">
-        <title>1.8 から 1.9 以降への移行</title>
-        <sect3 id="zend.locale.migration.fromoneeighttoonenine.depreciated">
-            <title>非推奨となるメソッド</title>
-
-            <para>
-                特別に用意されていたメソッドのいくつかが非推奨となります。
-                既存の挙動と重複しているからです。
-                古いメソッドも動作するにはしますが、
-                新しいメソッドについて説明する user notice が発生することに注意しましょう。
-                これらのメソッドは 2.0 で削除されます。
-                次の一覧で、新旧のメソッドコールを参照ください。
-            </para>
-
-            <table id="zend.locale.migration.fromoneeighttoonenine.depreciated.table-1">
-
-                <title>新旧のメソッドコールの一覧</title>
-
-                <tgroup cols="2">
-                    <thead>
-                        <row>
-                            <entry>古い方法</entry>
-                            <entry>新しい方法</entry>
-                        </row>
-                    </thead>
-                    <tbody>
-                        <row>
-                            <entry>getLanguageTranslationList($locale)</entry>
-                            <entry>getTranslationList('language', $locale)</entry>
-                        </row>
-                        <row>
-                            <entry>getScriptTranslationList($locale)</entry>
-                            <entry>getTranslationList('script', $locale)</entry>
-                        </row>
-                        <row>
-                            <entry>getCountryTranslationList($locale)</entry>
-                            <entry>getTranslationList('territory', $locale, 2)</entry>
-                        </row>
-                        <row>
-                            <entry>getTerritoryTranslationList($locale)</entry>
-                            <entry>getTranslationList('territory', $locale, 1)</entry>
-                        </row>
-                        <row>
-                            <entry>getLanguageTranslation($value, $locale)</entry>
-                            <entry>getTranslation($value, 'language', $locale)</entry>
-                        </row>
-                        <row>
-                            <entry>getScriptTranslation($value, $locale)</entry>
-                            <entry>getTranslation($value, 'script', $locale)</entry>
-                        </row>
-                        <row>
-                            <entry>getCountryTranslation($value, $locale)</entry>
-                            <entry>getTranslation($value, 'country', $locale)</entry>
-                        </row>
-                        <row>
-                            <entry>getTerritoryTranslation($value, $locale)</entry>
-                            <entry>getTranslation($value, 'territory', $locale)</entry>
-                        </row>
-                    </tbody>
-                </tgroup>
-            </table>
-        </sect3>
-    </sect2>
-
-    <sect2 id="zend.locale.migration.fromoneseventooneeight">
-        <title>1.7 から 1.8 以降への移行</title>
-        <sect3 id="zend.locale.migration.fromoneseventooneeight.defaultcaching">
-            <title>デフォルトのキャッシュ処理</title>
-
-            <para>
-                Zend Framework 1.8 以降、デフォルトのキャッシュ処理が追加されました。
-                このように変更された理由は、大半のユーザが、
-                パフォーマンスに問題を抱えていたにもかかわらずキャッシュを有効にしていなかったからです。
-                キャッシュを使用しない場合に I18n コアがボトルネックになることから、
-                <classname>Zend_Locale</classname> にキャッシュが設定されていない場合に
-                デフォルトのキャッシュ機能を追加することにしたのです。
-            </para>
-
-            <para>
-                パフォーマンスを落とすことがわかっていたとしても、
-                あえてキャッシュを無効にしたい場合もあるでしょう。
-                そのような場合にキャッシュを無効にするには
-                <methodname>disableCache()</methodname> メソッドを使用します。
-            </para>
-
-            <example id="zend.locale.migration.fromoneseventooneeight.example">
-                <title>デフォルトのキャッシュ処理の無効化</title>
-
-                <programlisting language="php"><![CDATA[
-Zend_Locale::disableCache(true);
-]]></programlisting>
-            </example>
-        </sect3>
-    </sect2>
-
-    <sect2 id="zend.locale.migration.fromonesixtooneseven">
-        <title>1.6 から 1.7 以降への移行</title>
-        <sect3 id="zend.locale.migration.fromonesixtooneseven.islocale">
-            <title>isLocale() を使う際の変更点</title>
-
-            <para>
-                コーディング規約に従うと、 isLocale() は boolean
-                値を返さなければなりませんでした。
-                以前のバージョンでは、成功したばあいに文字列を返していました。
-                リリース 1.7 では、互換性モードが追加されて文字列を返す古い挙動も使えます。
-                しかし、このばあいは新しい挙動に変更するようにというユーザ警告が発生します。
-                古い挙動の isLocale() が行っていた再ルーティングはもはや不要で、
-                すべての I18N は自分自身で再ルーティングを行います。
-            </para>
-
-            <para>
-                あなたのスクリプトを新しい <acronym>API</acronym> 用に変更するには、次のようにメソッドを使用します。
-            </para>
-
-            <example id="zend.locale.migration.fromonesixtooneseven.example">
-                <title>isLocale() を 1.6 用から 1.7 用に変更する方法</title>
-
-                <programlisting language="php"><![CDATA[
-// 1.6 の例
-if ($locale = Zend_Locale::isLocale($locale)) {
-    // ここで何かします
-}
-
-// 1.7 の例
-
-// 互換性モードを変更して警告の発生を防ぐ必要があります
-// これは起動ファイルで行うことができます
-Zend_Locale::$compatibilityMode = false;
-
-if (Zend_Locale::isLocale($locale)) {
-}
-]]></programlisting>
-
-                <para>
-                    2 番目のパラメータを使えば、
-                    そのロケールが正しくて再ルーティングが発生しなかったかどうかがわかることに注意しましょう。
-                </para>
-
-                <programlisting language="php"><![CDATA[
-// 1.6 の例
-if ($locale = Zend_Locale::isLocale($locale, false)) {
-    // ここで何かします
-}
-
-// 1.7 の例
-
-// 互換性モードを変更して警告の発生を防ぐ必要があります
-// これは起動ファイルで行うことができます
-Zend_Locale::$compatibilityMode = false;
-
-if (Zend_Locale::isLocale($locale, false)) {
-    if (Zend_Locale::isLocale($locale, true)) {
-        // ロケールはありません
-    }
-
-    // もとの文字列はロケールを持ちませんが再ルーティングすることができます
-}
-]]></programlisting>
-
-            </example>
-
-        </sect3>
-
-        <sect3 id="zend.locale.migration.fromonesixtooneseven.getdefault">
-            <title>getDefault() を使用する際の変更</title>
-
-            <para>
-                getDefault() メソッドの意味が変わりました。
-                フレームワークにロケールが統合され、それを setDefault()
-                で設定できるようになったからです。
-                このメソッドはもはやロケールチェインを返すことはなく、
-                フレームワークのロケールに設定されたものだけを返します。
-            </para>
-
-            <para>
-                あなたのスクリプトを新しい <acronym>API</acronym> 用に変更するには、次のようにメソッドを使用します。
-            </para>
-
-            <example id="zend.locale.migration.fromonesixtooneseven.getdefault.example">
-                <title>getDefault() を 1.6 用から 1.7 用に変更する方法</title>
-
-                <programlisting language="php"><![CDATA[
-// 1.6 の例
-$locales = $locale->getDefault(Zend_Locale::BROWSER);
-
-// 1.7 の例
-
-// 互換性モードを変更して警告の発生を防ぐ必要があります
-// これは起動ファイルで行うことができます
-Zend_Locale::$compatibilityMode = false;
-
-$locale = Zend_Locale::getOrder(Zend_Locale::BROWSER);
-]]></programlisting>
-
-                <para>
-                    古い実装における getDefault()
-                    の 2 番目のパラメータはもはや使えないことに注意しましょう。
-                    返り値がそれと同じ値となります。
-                </para>
-            </example>
-
-            <note>
-                <para>
-                    デフォルトでは古い挙動も有効ですが、ユーザ警告が発生します。
-                    新しい挙動にあわせてコードを変更し終えたら、
-                    互換性モードを false に変更して警告が発生しないようにしなければなりません。
-                </para>
-            </note>
-
-        </sect3>
-
-    </sect2>
-</sect1>

+ 16 - 15
documentation/manual/ja/module_specs/Zend_Service-ReCaptcha.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Reviewed: no -->
-<!-- EN-Revision: 17621 -->
+<!-- EN-Revision: 18816 -->
 <sect1 id="zend.service.recaptcha">
     <title>Zend_Service_ReCaptcha</title>
 
@@ -16,7 +16,7 @@
             (reCAPTCHA はフリーな CAPTCHA サービスで、
             書籍の電子化を支援しています)" とのことです。
             reCAPTCHA は、ユーザにふたつの単語を入力させます。
-            ひとつは実際の captcha で、もうひとつはスキャンされたテキスト
+            ひとつは実際の CAPTCHA で、もうひとつはスキャンされたテキスト
             (OCR ソフトウェアで認識できないもの) の単語です。
             ユーザが最初の単語を正しく入力したら、
             おそらく 2 番目の単語も正しく入力してくれるものとみなせます。
@@ -42,7 +42,7 @@
 
 
         <example id="zend.service.recaptcha.example-1">
-            <title>ReCaptcha サービスのインスタンスの作成</title>
+            <title>reCAPTCHA サービスのインスタンスの作成</title>
             <programlisting language="php"><![CDATA[
 $recaptcha = new Zend_Service_ReCaptcha($pubKey, $privKey);
 ]]></programlisting>
@@ -54,7 +54,7 @@ $recaptcha = new Zend_Service_ReCaptcha($pubKey, $privKey);
         </para>
 
         <example id="zend.service.recaptcha.example-2">
-            <title>ReCaptcha の表示</title>
+            <title>reCAPTCHA の表示</title>
             <programlisting language="php"><![CDATA[
 echo $recaptcha->getHTML();
 ]]></programlisting>
@@ -64,7 +64,7 @@ echo $recaptcha->getHTML();
             フォームから送信されてきた内容のうち、
             'recaptcha_challenge_field' と 'recaptcha_response_field'
             のふたつのフィールドの内容を受け取らなければなりません。
-            これらを、ReCaptcha オブジェクトの <methodname>verify()</methodname>
+            これらを、reCAPTCHA オブジェクトの <methodname>verify()</methodname>
             メソッドに渡します。
         </para>
 
@@ -85,7 +85,7 @@ $result = $recaptcha->verify(
         </para>
 
         <example id="zend.service.recaptcha.example-4">
-            <title>ReCaptcha の検証</title>
+            <title>reCAPTCHA の検証</title>
             <programlisting language="php"><![CDATA[
 if (!$result->isValid()) {
     // 検証に失敗
@@ -94,13 +94,13 @@ if (!$result->isValid()) {
         </example>
 
         <para>
-            もっと簡単な使用法は、<link
-                linkend="zend.captcha.adapters.recaptcha">ReCaptcha</link>
+            <link
+                linkend="zend.captcha.adapters.recaptcha">reCAPTCHA</link>
             <classname>Zend_Captcha</classname> アダプタを使うか、そのアダプタを
             <link
                 linkend="zend.form.standardElements.captcha">Captcha
                 フォーム要素</link>
-            のバックエンドとして使用することです。
+            のバックエンドとして使うことがもっと簡単です。
             どちらの場合でも、reCAPTCHA のレンダリングや検証は自動化されます。
         </para>
     </sect2>
@@ -110,14 +110,15 @@ if (!$result->isValid()) {
         
         <para>
             <classname>Zend_Service_ReCaptcha_MailHide</classname> を使うと、
-            メールアドレスを隠蔽することができます。メールアドレスの一部分を、
-            ReCaptcha チャレンジのポップアップウィンドウに置き換えます。
+            メールアドレスを隠蔽できます。メールアドレスの一部分を、
+            reCAPTCHA チャレンジのポップアップウィンドウに置き換えます。
             チャレンジを解決すると、完全なメールアドレスがあらわれるというわけです。
         </para>
         <para>
-            このコンポーネントを使用するには
+            このコンポーネントを使うには、
+            mailhide API 用の公開キーと秘密キーを生成するための
             <ulink url="http://recaptcha.net/whyrecaptcha.html">アカウント</ulink>
-            が必要で、mailhide API 用の公開キーと秘密キーを生成しなければなりません
+            が必要で
         </para>
         <example id="zend.service.recaptcha.mailhide.example-1">
             <title>mail hide コンポーネントの使用法</title>
@@ -138,11 +139,11 @@ print($mailHide);
         </example>
         <para>
             上の例の表示は "m...@example.com" のようになり、 "..."
-            のリンクは ReCaptcha チャレンジのポップアップウィンドウを表示します。
+            のリンクは reCAPTCHA チャレンジのポップアップウィンドウを表示します。
         </para>
         <para>
             公開キーと秘密キーそしてメールアドレスは、クラスのコンストラクタで指定することもできます。
-            4 番目の引数も存在し、ここでコンポーネントのオプションを設定することができます。
+            4 番目の引数も存在し、ここでコンポーネントのオプションを設定できます。
             使用できるオプションは次の表のとおりです。
             <table id="zend.service.recaptcha.mailhide.options.table">
                 <title>Zend_Service_ReCaptcha_MailHide のオプション</title>

+ 0 - 75
documentation/manual/ja/module_specs/Zend_Translate-Migration.xml

@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Reviewed: no -->
-<!-- EN-Revision: 17175 -->
-<sect1 id="zend.translate.migration">
-
-    <title>以前のバージョンからの移行</title>
-
-    <para>
-        <classname>Zend_Translate</classname> の <acronym>API</acronym> は日々変わっています。
-        <classname>Zend_Translate</classname> やそのサブコンポーネントを
-        初期のバージョンから使っている方は、以下のガイドラインに従ってスクリプトを変更し、
-        新しい <acronym>API</acronym> にあわせましょう。
-    </para>
-
-    <sect2 id="zend.translate.migration.fromonesixtooneseven">
-        <title>1.6 から 1.7 以降への移行</title>
-        <sect3 id="zend.translate.migration.fromonesixtooneseven.languages">
-            <title>言語の設定</title>
-
-            <para>
-                言語の自動検出を使用したり <classname>Zend_Translate</classname> に手動で言語を設定したりする際に、
-                「追加に失敗」や「翻訳がない」などの理由で notice が発行されることがありました。
-                以前のリリースでは、場合によっては例外が発生することもありました。
-            </para>
-
-            <para>
-                その原因は、存在しない言語をユーザが指定した際に
-                何が問題なのかを知る簡単な方法がなかったことにあります。
-                そこで私たちは notice を発行させるようにしていたのです。
-                ログに記録が残るので、サポートしていない言語がリクエストされたことがわかるようになります。
-                そしてたとえ notice が発行されたとしても、コード自体は問題なく動作します。
-            </para>
-
-            <para>
-                しかし、xdebug のような独自のエラーハンドラ/例外ハンドラを使った場合など、
-                意図せぬものも含めてすべての notice を拾ってしまうこともあります。
-                そういった独自のハンドラは <acronym>PHP</acronym> の設定を上書きしてしまうことがあるからです。
-            </para>
-
-            <para>
-                これらの notice を発生させないようにするためには、新たなオプション
-                'disableNotices' を true に設定するだけです。デフォルトは false となっています。
-            </para>
-
-            <example id="zend.translate.migration.fromonesixtooneseven.example">
-                <title>notice を取得せずに言語の設定を行う</title>
-
-                <para>
-                    ここでは、'en' に対応しているところにユーザから
-                    'fr' がリクエストされたものと家庭します。この翻訳は登録されていません。
-                </para>
-
-                <programlisting language="php"><![CDATA[
-$language = new Zend_Translate('gettext',
-                               '/path/to/translations',
-                               'auto');
-]]></programlisting>
-
-                <para>
-                    この場合、存在しない言語 'fr' が指定されたことに関する notice が発行されます。
-                    オプションを追加すると、この notice は発生しなくなります。
-                </para>
-
-                <programlisting language="php"><![CDATA[
-$language = new Zend_Translate('gettext',
-                               '/path/to/translations',
-                               'auto',
-                               array('disableNotices' => true));
-]]></programlisting>
-
-            </example>
-
-        </sect3>
-    </sect2>
-</sect1>

+ 0 - 61
documentation/manual/ja/module_specs/Zend_View-Migration.xml

@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Reviewed: no -->
-<!-- EN-Revision: 17172 -->
-<sect1 id="zend.view.migration">
-    <title>以前のバージョンからの移行</title>
-
-    <para>
-        この章では、主に <classname>Zend_View</classname> での過去との互換性のない変更について説明します。
-        以前のバージョンからの移行の助けになることでしょう。
-    </para>
-
-    <sect2 id="zend.view.migration.zf5748">
-        <title>1.7.5 より前のバージョンからの移行</title>
-
-        <para>
-            Zend Framework 開発陣は、1.7.5 より前のバージョンにおいて
-            <methodname>Zend_View::render()</methodname> メソッドにローカルファイル読み込み
-            (Local File Inclusion: LFI) 脆弱性の問題があることに気づきました。
-            1.7.5 より前のバージョンでは、このメソッドはデフォルトで
-            親ディレクトリを指す記法 ("../" や "..\")
-            を含むビュースクリプトも指定できてしまいます。
-            フィルタリングをしていないユーザ入力が <methodname>render()</methodname>
-            メソッドに渡されると、LFI 攻撃を受ける可能性が出てきます。
-        </para>
-
-        <programlisting language="php"><![CDATA[
-// $_GET['foobar'] = '../../../../etc/passwd' だったら……
-echo $view->render($_GET['foobar']); // LFI
-]]></programlisting>
-
-        <para>
-            <classname>Zend_View</classname> は、このようなビュースクリプトがリクエストされると
-            デフォルトで例外を発生させるようになりました。
-        </para>
-
-        <sect3 id="zend.view.migration.zf5748.disabling">
-            <title>render() メソッドにおける LFI 保護機能の無効化</title>
-
-            <para>
-                多くの開発者から「ユーザの入力では<emphasis>ない</emphasis>
-                場面で、意図的にこれらの記法を使っていることもある」という指摘を受けたため、
-                特別なフラグを用意してデフォルトの保護機能を無効化できるようにしました。
-                無効化する方法は二通りあります。コンストラクタのオプションで
-                'lfiProtectionOn' キーを指定するか、あるいは
-                <methodname>setLfiProtection()</methodname> メソッドをコールします。
-            </para>
-
-            <programlisting language="php"><![CDATA[
-// コンストラクタでの無効化
-$view = new Zend_View(array('lfiProtectionOn' => false));
-
-// メソッドコールによる無効化
-$view = new Zend_View();
-$view->setLfiProtection(false);
-]]></programlisting>
-        </sect3>
-    </sect2>
-</sect1>
-<!--
-vim:se ts=4 sw=4 et:
--->

+ 135 - 0
documentation/manual/ja/ref/migration-15.xml

@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<!-- EN-Revision: 18682 -->
+<sect1 id="migration.15">
+    <title>Zend Framework 1.5</title>
+
+    <para>
+        以前のバージョンから Zend Framework 1.5 またはそれ以降に更新する際は、
+        下記の移行上の注意点に注意すべきです。
+    </para>
+
+    <sect2 id="migration.15.zend.controller">
+        <title>Zend_Controller</title>
+
+        <para>
+            基本的な機能は同じでドキュメント化されている機能も変わりませんが、
+            ひとつだけ、<emphasis>ドキュメント化されていない</emphasis>
+            "機能" が変更されました。
+        </para>
+
+        <para>
+            <acronym>URL</acronym> の書き方としてドキュメント化されている方法は、
+            camelCased 形式の名前のアクションを使用するために
+            単語の区切り文字を使用するというものです。デフォルトの区切り文字は
+            '.' あるいは '-' ですが、ディスパッチャの設定で変更できます。
+            ディスパッチャは内部でアクション名を小文字に変換し、
+            単語の区切り文字をもとに camelCasing 形式のアクションメソッド名を作成します。
+            しかし、<acronym>PHP</acronym> の関数名は大文字小文字を区別しないので、<acronym>URL</acronym> 自体を
+            camelCasing 形式で書くこともできます。
+            この場合でも、ディスパッチャは <acronym>URL</acronym> を同じアクションメソッドに解決します。
+            たとえば 'camel-cased' はディスパッチャによって
+            'camelCasedAction' になります。一方 'camelCased' は
+            'camelcasedAction' となります。<acronym>PHP</acronym> では大文字小文字を細かく区別しないため、
+            これらはどちらも同じメソッドを実行することになります。
+        </para>
+
+        <para>
+            これは、ViewRenderer がビュースクリプトを解決する際に問題を引き起こします。
+            ドキュメントに記載されている正式な方法は、
+            単語の区切りをすべてダッシュに変換して単語は小文字にするというものです。
+            こうすればアクションとビュースクリプトの関連が明確になり、
+            小文字への正規化でスクリプトが見つかることが確実となります。
+            しかし、アクション 'camelCased' がコールされて解決された場合は、
+            単語の区切りはもう存在しません。そして ViewRenderer は
+            <filename>camel-cased.phtml</filename> ではない別のファイル -- <filename>camelcased.phtml</filename>
+            を探してしまうのです。
+        </para>
+
+        <para>
+            中にはこの "機能" を使用している開発者もいるようますが、
+            これは決して意図した機能ではありません。
+            1.5.0 のツリーでは、ViewRenderer はこの方式の解決を行わなくなりました。
+            これでアクションとビュースクリプトの結びつきが確実になったわけです。
+            まず、ディスパッチャはアクション名の大文字小文字をきちんと区別するようになります。
+            つまり、camelCasing 形式を使用したアクションの解決先は、
+            単語の区切りを使用した ('camel-casing') 場合とは違うものになるということです。
+            これで、ViewRenderer がビュースクリプトを解決する際には
+            区切り文字を使用したアクションのみを使用することになります。
+        </para>
+
+        <para>
+            今までこの "機能" に頼っていた人たちは、
+            以下のいずれかの方法で対応します。
+        </para>
+
+        <itemizedlist>
+            <listitem><para>
+                    一番いい方法: ビュースクリプトの名前を変更する。
+                    利点: 前方互換性。欠点: もし対象となるビュースクリプトが多い場合は、
+                    多くのファイルの名前を変更しなければならなくなります。
+            </para></listitem>
+
+            <listitem>
+                <para>
+                    その次にいい方法: ViewRenderer はビュースクリプトの解決を
+                    <classname>Zend_Filter_Inflector</classname> に委譲しています。
+                    インフレクタのルールを変更し、
+                    アクションの単語間をダッシュで区切らないようにします。
+                </para>
+
+                <programlisting language="php"><![CDATA[
+$viewRenderer =
+    Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
+$inflector = $viewRenderer->getInflector();
+$inflector->setFilterRule(':action', array(
+    new Zend_Filter_PregReplace(
+        '#[^a-z0-9' . preg_quote(DIRECTORY_SEPARATOR, '#') . ']+#i',
+        ''
+    ),
+    'StringToLower'
+));
+]]></programlisting>
+
+                <para>
+                    上のコードは、インフレクタを変更して単語をダッシュで区切らないようにしています。
+                    もし実際のビュースクリプト名を camelCased にしたいのなら、さらに
+                    'StringToLower' フィルタも削除することになるでしょう。
+                </para>
+
+                <para>
+                    ビュースクリプトの名前を変えるのが面倒だったり
+                    時間がかかったりする場合は、
+                    もしあまり時間を割けないのならこの方法が最適です。
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    あまりお勧めしない方法: ディスパッチャに camelCased
+                    形式のアクションをディスパッチさせるよう、フロントコントローラのフラグ
+                    <property>useCaseSensitiveActions</property> を設定します。
+                </para>
+
+                <programlisting language="php"><![CDATA[
+$front->setParam('useCaseSensitiveActions', true);
+]]></programlisting>
+
+                <para>
+                    これで camelCasing 形式の URL を使えるようになり、
+                    単語の区切り文字を使用した場合と同じアクションに解決されるようになります。
+                    しかし、もともと抱えていた問題も残ったままとなってしまいます。
+                    できれば先ほどのふたつのうちのいずれかを使用したほうがいいでしょう。
+                </para>
+
+                <para>
+                    このフラグを使用していると、
+                    将来このフラグが廃止予定になったときに notice が発生することになります。
+                </para>
+            </listitem>
+        </itemizedlist>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 97 - 0
documentation/manual/ja/ref/migration-16.xml

@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<!-- EN-Revision: 18682 -->
+<sect1 id="migration.16">
+    <title>Zend Framework 1.6</title>
+
+    <para>
+        以前のバージョンから Zend Framework 1.6 またはそれ以降に更新する際は、
+        下記の移行上の注意点に注意すべきです。
+    </para>
+
+    <sect2 id="migration.16.zend.controller">
+        <title>Zend_Controller</title>
+
+        <sect3 id="migration.16.zend.controller.dispatcher">
+            <title>ディスパッチャインターフェイスの変更</title>
+
+            <para>
+                <classname>Zend_Controller_Front</classname> と
+                <classname>Zend_Controller_Router_Route_Module</classname>
+                は、ディスパッチャインターフェイスにないメソッドを使用していました。
+                次の 3 つのメソッドを追加し、
+                自作のディスパッチャが同梱の実装と共存できるようにしています。
+            </para>
+
+            <itemizedlist>
+                <listitem><para>
+                    <methodname>getDefaultModule()</methodname>:
+                    デフォルトモジュールの名前を返します。
+                </para></listitem>
+
+                <listitem><para>
+                    <methodname>getDefaultControllerName()</methodname>:
+                    デフォルトコントローラの名前を返します。
+                </para></listitem>
+
+                <listitem><para>
+                    <methodname>getDefaultAction()</methodname>:
+                    デフォルトアクションの名前を返します。
+                </para></listitem>
+            </itemizedlist>
+        </sect3>
+    </sect2>
+
+    <sect2 id="migration.16.zend.file.transfer">
+        <title>Zend_File_Transfer</title>
+        <sect3 id="migration.16.zend.file.transfer.validators">
+            <title>バリデータを使う際の変更点</title>
+
+            <para>
+                <classname>Zend_File_Transfer</classname> のバリデータが
+                <classname>Zend_Form</classname> のデフォルトのものと同じようには動作しないという指摘がありました。
+                <classname>Zend_Form</classname> では <varname>$breakChainOnFailure</varname>
+                パラメータを利用でき、検証エラーが発生した際に
+                それ以降のバリデータを動作させないようにすることができます。
+            </para>
+
+            <para>
+                そこで、<classname>Zend_File_Transfer</classname>
+                の既存のバリデータにもこのパラメータを追加することにしました。
+            </para>
+
+            <itemizedlist>
+                <listitem><para>
+                    古い形式の <acronym>API</acronym>: <methodname>addValidator($validator, $options, $files)</methodname>.
+                </para></listitem>
+
+                <listitem><para>
+                    新しい形式の <acronym>API</acronym>: <methodname>addValidator($validator, $breakChainOnFailure, $options, $files)</methodname>.
+                </para></listitem>
+            </itemizedlist>
+
+            <para>
+                既存のスクリプトを新しい <acronym>API</acronym> に移行するには、バリデータの定義の後に
+                <constant>FALSE</constant> を追加します。
+            </para>
+
+            <example id="migration.16.zend.file.transfer.example">
+                <title>ファイルバリデータを 1.6.1 から 1.6.2 に移行する方法</title>
+
+                <programlisting language="php"><![CDATA[
+// 1.6.1 での例
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addValidator('FilesSize', array('1B', '100kB'));
+
+// 同じ例を 1.6.2 以降用にしたもの
+// boolean false が追加されていることに注意しましょう
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addValidator('FilesSize', false, array('1B', '100kB'));
+]]></programlisting>
+        </example>
+        </sect3>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 563 - 0
documentation/manual/ja/ref/migration-17.xml

@@ -0,0 +1,563 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<!-- EN-Revision: 18682 -->
+<sect1 id="migration.17">
+    <title>Zend Framework 1.7</title>
+
+    <para>
+        以前のバージョンから Zend Framework 1.7 またはそれ以降に更新する際は、
+        下記の移行上の注意点に注意すべきです。
+    </para>
+
+    <sect2 id="migration.17.zend.controller">
+        <title>Zend_Controller</title>
+
+        <sect3 id="migration.17.zend.controller.dispatcher">
+            <title>ディスパッチャインターフェイスの変更</title>
+
+            <para>
+                ユーザからの指摘により、
+                <classname>Zend_Controller_Action_Helper_ViewRenderer</classname>
+                が使っているディスパッチャ抽象クラスのメソッドの中で
+                ディスパッチャインターフェイスに存在しないものがあることに気づきました。
+                次のメソッドを追加し、
+                自作のディスパッチャが同梱の実装と共存できるようにしています。
+            </para>
+
+            <itemizedlist>
+                <listitem><para>
+                    <methodname>formatModuleName()</methodname>:
+                リクエストオブジェクト内に格納されたりしている生のコントローラ名を受け取り、
+                それを再フォーマットして
+                <classname>Zend_Controller_Action</classname> を継承した適切なクラス名にします。
+                </para></listitem>
+            </itemizedlist>
+        </sect3>
+    </sect2>
+
+    <sect2 id="migration.17.zend.file.transfer">
+        <title>Zend_File_Transfer</title>
+
+        <sect3 id="migration.17.zend.file.transfer.validators">
+            <title>フィルタやバリデータを使用する際の変更点</title>
+
+            <para>
+                <classname>Zend_File_Transfer</classname> のバリデータが
+                <classname>Zend_Config</classname> と組み合わせて使えないという指摘がありました。
+                名前つき配列を使っていなかったからです。
+            </para>
+
+            <para>
+                そこで、<classname>Zend_File_Transfer</classname> 用のすべてのフィルタとバリデータを作り直しました。
+                古い構文でも動作しますがこれは非推奨となり、
+                設定せずに実行すると <acronym>PHP</acronym> の notice が発生するようになります。
+            </para>
+
+            <para>
+                次のリストは、パラメータの使用法に関する変更点をまとめたものです。
+            </para>
+
+            <sect4 id="migration.17.zend.file.transfer.validators.rename">
+                <title>Rename フィルタ</title>
+
+                <itemizedlist>
+                    <listitem><para>
+                        古い形式の <acronym>API</acronym>: <classname>Zend_Filter_File_Rename($oldfile, $newfile, $overwrite)</classname>
+                    </para></listitem>
+
+                    <listitem><para>
+                        新しい形式の <acronym>API</acronym>: <methodname>Zend_Filter_File_Rename($options)</methodname>
+                        $options には次の配列キーを使えます。
+                        <emphasis>source</emphasis> ($oldfile と同等)、
+                        <emphasis>target</emphasis> ($newfile と同等)、
+                        <emphasis>overwrite</emphasis> ($overwrite と同等)
+                    </para></listitem>
+                </itemizedlist>
+
+                <example id="migration.17.zend.file.transfer.validators.rename.example">
+                    <title>rename フィルタの 1.6 から 1.7 での変更点</title>
+
+                    <programlisting language="php"><![CDATA[
+// 1.6 の例
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addFilter('Rename',
+                   array('/path/to/oldfile', '/path/to/newfile', true));
+
+// 1.7 の例
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addFilter('Rename',
+                   array('source' => '/path/to/oldfile',
+                         'target' => '/path/to/newfile',
+                         'overwrite' => true));
+]]></programlisting>
+                </example>
+            </sect4>
+
+            <sect4 id="migration.17.zend.file.transfer.validators.count">
+                <title>Count バリデータ</title>
+
+                <itemizedlist>
+                    <listitem><para>
+                        古い形式の <acronym>API</acronym>: <methodname>Zend_Validate_File_Count($min, $max)</methodname>
+                    </para></listitem>
+
+                    <listitem><para>
+                        新しい形式の <acronym>API</acronym>: <methodname>Zend_Validate_File_Count($options)</methodname>
+                        $options には次の配列キーを使えます。
+                        <emphasis>min</emphasis> ($min と同等)、
+                        <emphasis>max</emphasis> ($max と同等)
+                    </para></listitem>
+                </itemizedlist>
+
+                <example id="migration.17.zend.file.transfer.validators.count.example">
+                    <title>count バリデータの 1.6 から 1.7 での変更点</title>
+
+                    <programlisting language="php"><![CDATA[
+// 1.6 の例
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addValidator('Count',
+                      array(2, 3));
+
+// 1.7 の例
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addValidator('Count',
+                      false,
+                      array('min' => 2,
+                            'max' => 3));
+]]></programlisting>
+                </example>
+            </sect4>
+
+            <sect4 id="migration.17.zend.file.transfer.validators.extension">
+                <title>Extension バリデータ</title>
+
+                <itemizedlist>
+                    <listitem><para>
+                        古い形式の <acronym>API</acronym>: <classname>Zend_Validate_File_Extension($extension, $case)</classname>
+                    </para></listitem>
+
+                    <listitem><para>
+                        新しい形式の <acronym>API</acronym>: <methodname>Zend_Validate_File_Extension($options)</methodname>
+                        $options には次の配列キーを使えます。
+                        <emphasis>*</emphasis> ($extension と同等、任意の他のキーを使用可能)、
+                        <emphasis>case</emphasis> ($case と同等)
+                    </para></listitem>
+                </itemizedlist>
+
+                <example id="migration.17.zend.file.transfer.validators.extension.example">
+                    <title>extension バリデータの 1.6 から 1.7 での変更点</title>
+
+                    <programlisting language="php"><![CDATA[
+// 1.6 の例
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addValidator('Extension',
+                      array('jpg,gif,bmp', true));
+
+// 1.7 の例
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addValidator('Extension',
+                      false,
+                      array('extension1' => 'jpg,gif,bmp',
+                            'case' => true));
+]]></programlisting>
+                </example>
+            </sect4>
+
+            <sect4 id="migration.17.zend.file.transfer.validators.filessize">
+                <title>FilesSize バリデータ</title>
+
+                <itemizedlist>
+                    <listitem><para>
+                        古い形式の <acronym>API</acronym>: <classname>Zend_Validate_File_FilesSize($min, $max, $bytestring)</classname>
+                    </para></listitem>
+
+                    <listitem><para>
+                        新しい形式の <acronym>API</acronym>: <methodname>Zend_Validate_File_FilesSize($options)</methodname>
+                        $options には次の配列キーを使えます。
+                        <emphasis>min</emphasis> ($min と同等)、
+                        <emphasis>max</emphasis> ($max と同等)、
+                        <emphasis>bytestring</emphasis> ($bytestring と同等)
+                    </para></listitem>
+                </itemizedlist>
+
+                <para>
+                    さらに <methodname>useByteString()</methodname> メソッドのシグネチャも変わりました。
+                    このメソッドの使用法は、
+                    そのバリデータが生成するメッセージでバイト文字列を使うことを想定しているかどうかを調べるだけになりました。
+                    フラグの値を設定するには
+                    <methodname>setUseByteString()</methodname> メソッドを使用します。
+                </para>
+
+                <example id="migration.17.zend.file.transfer.validators.filessize.example">
+                    <title>filessize バリデータの 1.6 から 1.7 での変更点</title>
+
+                    <programlisting language="php"><![CDATA[
+// 1.6 の例
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addValidator('FilesSize',
+                   array(100, 10000, true));
+
+// 1.7 の例
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addValidator('FilesSize',
+                      false,
+                      array('min' => 100,
+                            'max' => 10000,
+                            'bytestring' => true));
+
+// 1.6 の例
+$upload->useByteString(true); // set flag
+
+// 1.7 の例
+$upload->setUseByteSting(true); // set flag
+]]></programlisting>
+                </example>
+            </sect4>
+
+            <sect4 id="migration.17.zend.file.transfer.validators.hash">
+                <title>Hash バリデータ</title>
+
+                <itemizedlist>
+                    <listitem><para>
+                        古い形式の <acronym>API</acronym>: <classname>Zend_Validate_File_Hash($hash, $algorithm)</classname>
+                    </para></listitem>
+
+                    <listitem><para>
+                        新しい形式の <acronym>API</acronym>: <methodname>Zend_Validate_File_Hash($options)</methodname>
+                        $options には次の配列キーを使えます。
+                        <emphasis>*</emphasis> ($hash と同等、任意の他のキーを使用可能)、
+                        <emphasis>algorithm</emphasis> ($algorithm と同等)、
+                    </para></listitem>
+                </itemizedlist>
+
+                <example id="migration.17.zend.file.transfer.validators.hash.example">
+                    <title>hash バリデータの 1.6 から 1.7 での変更点</title>
+
+                    <programlisting language="php"><![CDATA[
+// 1.6 の例
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addValidator('Hash',
+                   array('12345', 'md5'));
+
+// 1.7 の例
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addValidator('Hash',
+                      false,
+                      array('hash1' => '12345',
+                            'algorithm' => 'md5'));
+]]></programlisting>
+                </example>
+            </sect4>
+
+            <sect4 id="migration.17.zend.file.transfer.validators.imagesize">
+                <title>ImageSize バリデータ</title>
+
+                <itemizedlist>
+                    <listitem><para>
+                        古い形式の <acronym>API</acronym>: <classname>Zend_Validate_File_ImageSize($minwidth, $minheight, $maxwidth, $maxheight)</classname>
+                    </para></listitem>
+
+                    <listitem><para>
+                        新しい形式の <acronym>API</acronym>: <methodname>Zend_Validate_File_FilesSize($options)</methodname>
+                        $options には次の配列キーを使えます。
+                        <emphasis>minwidth</emphasis> ($minwidth と同等)、
+                        <emphasis>maxwidth</emphasis> ($maxwidth と同等)、
+                        <emphasis>minheight</emphasis> ($minheight と同等)、
+                        <emphasis>maxheight</emphasis> ($maxheight と同等)
+                    </para></listitem>
+                </itemizedlist>
+
+                <example id="migration.17.zend.file.transfer.validators.imagesize.example">
+                    <title>imagesize バリデータの 1.6 から 1.7 での変更点</title>
+
+                    <programlisting language="php"><![CDATA[
+// 1.6 の例
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addValidator('ImageSize',
+                      array(10, 10, 100, 100));
+
+// 1.7 の例
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addValidator('ImageSize',
+                      false,
+                      array('minwidth' => 10,
+                            'minheight' => 10,
+                            'maxwidth' => 100,
+                            'maxheight' => 100));
+]]></programlisting>
+                </example>
+            </sect4>
+
+            <sect4 id="migration.17.zend.file.transfer.validators.size">
+                <title>Size バリデータ</title>
+
+                <itemizedlist>
+                    <listitem><para>
+                        古い形式の <acronym>API</acronym>: <classname>Zend_Validate_File_Size($min, $max, $bytestring)</classname>
+                    </para></listitem>
+
+                    <listitem><para>
+                        新しい形式の <acronym>API</acronym>: <methodname>Zend_Validate_File_Size($options)</methodname>
+                        $options には次の配列キーを使えます。
+                        <emphasis>min</emphasis> ($min と同等)、
+                        <emphasis>max</emphasis> ($max と同等)、
+                        <emphasis>bytestring</emphasis> ($bytestring と同等)
+                    </para></listitem>
+                </itemizedlist>
+
+                <example id="migration.17.zend.file.transfer.validators.size.example">
+                    <title>size バリデータの 1.6 から 1.7 での変更点</title>
+
+                    <programlisting language="php"><![CDATA[
+// 1.6 の例
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addValidator('Size',
+                      array(100, 10000, true));
+
+// 1.7 の例
+$upload = new Zend_File_Transfer_Adapter_Http();
+$upload->addValidator('Size',
+                      false,
+                      array('min' => 100,
+                            'max' => 10000,
+                            'bytestring' => true));
+]]></programlisting>
+                </example>
+            </sect4>
+        </sect3>
+    </sect2>
+
+    <sect2 id="migration.17.zend.locale">
+        <title>Zend_Locale</title>
+
+        <sect3 id="migration.17.zend.locale.islocale">
+            <title>isLocale() を使う際の変更点</title>
+
+            <para>
+                コーディング規約に従うと、 isLocale() は boolean
+                値を返さなければなりませんでした。
+                以前のバージョンでは、成功したばあいに文字列を返していました。
+                リリース 1.7 では、互換性モードが追加されて文字列を返す古い挙動も使えます。
+                しかし、このばあいは新しい挙動に変更するようにというユーザ警告が発生します。
+                古い挙動の isLocale() が行っていた再ルーティングはもはや不要で、
+                すべての I18N は自分自身で再ルーティングを行います。
+            </para>
+
+            <para>
+                あなたのスクリプトを新しい <acronym>API</acronym> 用に変更するには、次のようにメソッドを使用します。
+            </para>
+
+            <example id="migration.17.zend.locale.islocale.example">
+                <title>isLocale() を 1.6 用から 1.7 用に変更する方法</title>
+
+                <programlisting language="php"><![CDATA[
+// 1.6 の例
+if ($locale = Zend_Locale::isLocale($locale)) {
+    // ここで何かします
+}
+
+// 1.7 の例
+
+// 互換性モードを変更して警告の発生を防ぐ必要があります
+// これは起動ファイルで行うことができます
+Zend_Locale::$compatibilityMode = false;
+
+if (Zend_Locale::isLocale($locale)) {
+}
+]]></programlisting>
+
+                <para>
+                    2 番目のパラメータを使えば、
+                    そのロケールが正しくて再ルーティングが発生しなかったかどうかがわかることに注意しましょう。
+                </para>
+
+                <programlisting language="php"><![CDATA[
+// 1.6 の例
+if ($locale = Zend_Locale::isLocale($locale, false)) {
+    // ここで何かします
+}
+
+// 1.7 の例
+
+// 互換性モードを変更して警告の発生を防ぐ必要があります
+// これは起動ファイルで行うことができます
+Zend_Locale::$compatibilityMode = false;
+
+if (Zend_Locale::isLocale($locale, false)) {
+    if (Zend_Locale::isLocale($locale, true)) {
+        // ロケールはありません
+    }
+
+    // もとの文字列はロケールを持ちませんが再ルーティングできます
+}
+]]></programlisting>
+
+            </example>
+        </sect3>
+
+        <sect3 id="migration.17.zend.locale.islocale.getdefault">
+            <title>getDefault() を使用する際の変更</title>
+
+            <para>
+                getDefault() メソッドの意味が変わりました。
+                フレームワークにロケールが統合され、それを setDefault()
+                で設定できるようになったからです。
+                このメソッドはもはやロケールチェインを返すことはなく、
+                フレームワークのロケールに設定されたものだけを返します。
+            </para>
+
+            <para>
+                あなたのスクリプトを新しい <acronym>API</acronym> 用に変更するには、次のようにメソッドを使用します。
+            </para>
+
+            <example id="migration.17.zend.locale.islocale.getdefault.example">
+                <title>getDefault() を 1.6 用から 1.7 用に変更する方法</title>
+
+                <programlisting language="php"><![CDATA[
+// 1.6 の例
+$locales = $locale->getDefault(Zend_Locale::BROWSER);
+
+// 1.7 の例
+
+// 互換性モードを変更して警告の発生を防ぐ必要があります
+// これは起動ファイルで行うことができます
+Zend_Locale::$compatibilityMode = false;
+
+$locale = Zend_Locale::getOrder(Zend_Locale::BROWSER);
+]]></programlisting>
+
+                <para>
+                    古い実装における getDefault()
+                    の 2 番目のパラメータはもはや使えないことに注意しましょう。
+                    返り値がそれと同じ値となります。
+                </para>
+            </example>
+
+            <note>
+                <para>
+                    デフォルトでは古い挙動も有効ですが、ユーザ警告が発生します。
+                    新しい挙動にあわせてコードを変更し終えたら、
+                    互換性モードを false に変更して警告が発生しないようにしなければなりません。
+                </para>
+            </note>
+        </sect3>
+    </sect2>
+
+    <sect2 id="migration.17.zend.translate">
+        <title>Zend_Translate</title>
+
+        <sect3 id="migration.17.zend.translate.languages">
+            <title>言語の設定</title>
+
+            <para>
+                言語の自動検出を使用したり <classname>Zend_Translate</classname> に手動で言語を設定したりする際に、
+                「追加に失敗」や「翻訳がない」などの理由で notice が発行されることがありました。
+                以前のリリースでは、場合によっては例外が発生することもありました。
+            </para>
+
+            <para>
+                その原因は、存在しない言語をユーザが指定した際に
+                何が問題なのかを知る簡単な方法がなかったことにあります。
+                そこで私たちは notice を発行させるようにしていたのです。
+                ログに記録が残るので、サポートしていない言語がリクエストされたことがわかるようになります。
+                そしてたとえ notice が発行されたとしても、コード自体は問題なく動作します。
+            </para>
+
+            <para>
+                しかし、xdebug のような独自のエラーハンドラ/例外ハンドラを使った場合など、
+                意図せぬものも含めてすべての notice を拾ってしまうこともあります。
+                そういった独自のハンドラは <acronym>PHP</acronym> の設定を上書きしてしまうことがあるからです。
+            </para>
+
+            <para>
+                これらの notice を発生させないようにするためには、新たなオプション
+                'disableNotices' を true に設定するだけです。デフォルトは false となっています。
+            </para>
+
+            <example id="migration.17.zend.translate.example">
+                <title>notice を取得せずに言語の設定を行う</title>
+
+                <para>
+                    ここでは、'en' に対応しているところにユーザから
+                    'fr' がリクエストされたものと家庭します。この翻訳は登録されていません。
+                </para>
+
+                <programlisting language="php"><![CDATA[
+$language = new Zend_Translate('gettext',
+                               '/path/to/translations',
+                               'auto');
+]]></programlisting>
+
+                <para>
+                    この場合、存在しない言語 'fr' が指定されたことに関する notice が発行されます。
+                    オプションを追加すると、この notice は発生しなくなります。
+                </para>
+
+                <programlisting language="php"><![CDATA[
+$language = new Zend_Translate('gettext',
+                               '/path/to/translations',
+                               'auto',
+                               array('disableNotices' => true));
+]]></programlisting>
+
+            </example>
+        </sect3>
+    </sect2>
+
+    <sect2 id="migration.17.zend.view">
+        <title>Zend_View</title>
+
+        <note>
+            <para>
+                <classname>Zend_View</classname> 内の API 変更は、
+                リリース 1.7.5 またはそれ以降にアップグレードする際にだけ注意すべきです。
+            </para>
+        </note>
+
+        <para>
+            Zend Framework 開発陣は、1.7.5 より前のバージョンにおいて
+            <methodname>Zend_View::render()</methodname> メソッドにローカルファイル読み込み
+            (Local File Inclusion: LFI) 脆弱性の問題があることに気づきました。
+            1.7.5 より前のバージョンでは、このメソッドはデフォルトで
+            親ディレクトリを指す記法 ("../" や "..\")
+            を含むビュースクリプトも指定できてしまいます。
+            フィルタリングをしていないユーザ入力が <methodname>render()</methodname>
+            メソッドに渡されると、LFI 攻撃を受ける可能性が出てきます。
+        </para>
+
+        <programlisting language="php"><![CDATA[
+// $_GET['foobar'] = '../../../../etc/passwd' だったら……
+echo $view->render($_GET['foobar']); // LFI
+]]></programlisting>
+
+        <para>
+            <classname>Zend_View</classname> は、このようなビュースクリプトがリクエストされると
+            デフォルトで例外を発生させるようになりました。
+        </para>
+
+        <sect3 id="migration.17.zend.view.disabling">
+            <title>render() メソッドにおける LFI 保護機能の無効化</title>
+
+            <para>
+                多くの開発者から「ユーザの入力では<emphasis>ない</emphasis>
+                場面で、意図的にこれらの記法を使っていることもある」という指摘を受けたため、
+                特別なフラグを用意してデフォルトの保護機能を無効化できるようにしました。
+                無効化する方法は二通りあります。コンストラクタのオプションで
+                'lfiProtectionOn' キーを指定するか、あるいは
+                <methodname>setLfiProtection()</methodname> メソッドをコールします。
+            </para>
+
+            <programlisting language="php"><![CDATA[
+// コンストラクタでの無効化
+$view = new Zend_View(array('lfiProtectionOn' => false));
+
+// メソッドコールによる無効化
+$view = new Zend_View();
+$view->setLfiProtection(false);
+]]></programlisting>
+        </sect3>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->

+ 63 - 0
documentation/manual/ja/ref/migration-18.xml

@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+<!-- EN-Revision: 18682 -->
+<sect1 id="migration.18">
+    <title>Zend Framework 1.8</title>
+
+    <para>
+        以前のバージョンから Zend Framework 1.8 またはそれ以降に更新する際は、
+        下記の移行上の注意点に注意すべきです。
+    </para>
+
+    <sect2 id="migration.18.zend.controller">
+        <title>Zend_Controller</title>
+
+        <sect3 id="migration.18.zend.controller.router">
+            <title>標準のルートの変更</title>
+
+            <para>
+                新しい標準ルートでは翻訳セグメントが使用できるようになったため、
+                ルートのセグメントの先頭にある '<emphasis>@</emphasis>'
+                は特殊文字と解釈されるようになりました。
+                この文字を静的セグメント内で使用するには、前にもうひとつ
+                '<emphasis>@</emphasis>' をつけてエスケープする必要があります。
+                また、'<emphasis>:</emphasis>' も同様です。
+            </para>
+        </sect3>
+    </sect2>
+
+    <sect2 id="migration.18.zend.locale">
+        <title>Zend_Locale</title>
+
+        <sect3 id="migration.18.zend.locale.defaultcaching">
+            <title>デフォルトのキャッシュ処理</title>
+
+            <para>
+                Zend Framework 1.8 以降、デフォルトのキャッシュ処理が追加されました。
+                このように変更された理由は、大半のユーザが、
+                パフォーマンスに問題を抱えていたにもかかわらずキャッシュを有効にしていなかったからです。
+                キャッシュを使用しない場合に I18n コアがボトルネックになることから、
+                <classname>Zend_Locale</classname> にキャッシュが設定されていない場合に
+                デフォルトのキャッシュ機能を追加することにしたのです。
+            </para>
+
+            <para>
+                パフォーマンスを落とすことがわかっていたとしても、
+                あえてキャッシュを無効にしたい場合もあるでしょう。
+                そのような場合にキャッシュを無効にするには
+                <methodname>disableCache()</methodname> メソッドを使用します。
+            </para>
+
+            <example id="migration.18.zend.locale.defaultcaching.example">
+                <title>デフォルトのキャッシュ処理の無効化</title>
+
+                <programlisting language="php"><![CDATA[
+Zend_Locale::disableCache(true);
+]]></programlisting>
+            </example>
+        </sect3>
+    </sect2>
+</sect1>
+<!--
+vim:se ts=4 sw=4 et:
+-->