浏览代码

[GENERIC] Zend_Translate:

- added array usage for __construct and all adapters
- added Zend_Config usage for __construct and all adapters

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@21661 44c647ce-9c0f-0410-b52a-842ac1e357ba
thomas 16 年之前
父节点
当前提交
72ca22f3ac
共有 24 个文件被更改,包括 579 次插入205 次删除
  1. 19 6
      documentation/manual/en/module_specs/Zend_Controller-Router-Route.xml
  2. 3 1
      documentation/manual/en/module_specs/Zend_Filter_Input.xml
  3. 4 3
      documentation/manual/en/module_specs/Zend_Locale-Introduction.xml
  4. 15 8
      documentation/manual/en/module_specs/Zend_Translate-Adapters.xml
  5. 168 58
      documentation/manual/en/module_specs/Zend_Translate-Additional.xml
  6. 30 8
      documentation/manual/en/module_specs/Zend_Translate-Plurals.xml
  7. 77 17
      documentation/manual/en/module_specs/Zend_Translate-SourceCreation.xml
  8. 18 5
      documentation/manual/en/module_specs/Zend_Translate-Using.xml
  9. 6 4
      documentation/manual/en/module_specs/Zend_Validate-Messages.xml
  10. 14 6
      documentation/manual/en/module_specs/Zend_Validate.xml
  11. 21 3
      documentation/manual/en/module_specs/Zend_View-Helpers-Translate.xml
  12. 3 1
      documentation/manual/en/ref/migration-110.xml
  13. 57 18
      library/Zend/Translate.php
  14. 111 60
      library/Zend/Translate/Adapter.php
  15. 23 6
      library/Zend/Translate/Adapter/Csv.php
  16. 2 1
      tests/Zend/Translate/Adapter/ArrayTest.php
  17. 1 0
      tests/Zend/Translate/Adapter/CsvTest.php
  18. 1 0
      tests/Zend/Translate/Adapter/GettextTest.php
  19. 1 0
      tests/Zend/Translate/Adapter/IniTest.php
  20. 1 0
      tests/Zend/Translate/Adapter/QtTest.php
  21. 1 0
      tests/Zend/Translate/Adapter/TbxTest.php
  22. 1 0
      tests/Zend/Translate/Adapter/TmxTest.php
  23. 1 0
      tests/Zend/Translate/Adapter/XliffTest.php
  24. 1 0
      tests/Zend/Translate/Adapter/XmlTmTest.php

+ 19 - 6
documentation/manual/en/module_specs/Zend_Controller-Router-Route.xml

@@ -283,12 +283,25 @@ $router->addRoute('archive', $route);
 
         <programlisting language="php"><![CDATA[
 // Prepare the translator
-$translator = new Zend_Translate('array', array(), 'en');
-$translator->addTranslation(array('archive' => 'archiv',
-                                  'year'    => 'jahr',
-                                  'month'   => 'monat',
-                                  'index'   => 'uebersicht'),
-                            'de');
+$translator = new Zend_Translate(
+    array(
+        'adapter' => 'array',
+        'content' => array(),
+        'locale'  => 'en'
+    )
+);
+$translator->addTranslation(
+    array(
+        'content' =>
+            array(
+                'archive' => 'archiv',
+                'year'    => 'jahr',
+                'month'   => 'monat',
+                'index'   => 'uebersicht'
+            ),
+        'locale'  => 'de'
+    )
+);
 
 // Set the current locale for the translator
 $translator->setLocale('en');

+ 3 - 1
documentation/manual/en/module_specs/Zend_Filter_Input.xml

@@ -400,7 +400,9 @@ $input->setOptions($options);
 
             <programlisting language="php"><![CDATA[
 $translate = new Zend_Translate_Adapter_Array(array(
-    Zend_Filter_Input::MISSING_MESSAGE => "Where is the field?"
+    'content' => array(
+        Zend_Filter_Input::MISSING_MESSAGE => "Where is the field?"
+    )
 );
 
 $input = new Zend_Filter_Input($filters, $validators, $data);

+ 4 - 3
documentation/manual/en/module_specs/Zend_Locale-Introduction.xml

@@ -13,9 +13,10 @@
     </para>
 
     <para>
-        We need <ulink url="http://en.wikipedia.org/wiki/L10n">Localization</ulink> and
-        complementary <ulink url="http://en.wikipedia.org/wiki/L10n">Internationalization</ulink>.
-        Both are often abbreviated to <code>L10n</code> and <code>I18n</code>. Internationalization
+        We need <ulink
+            url="http://en.wikipedia.org/wiki/Internationalization_and_localization">Localization
+            and complementary Internationalization</ulink>. Both are often abbreviated to
+        <emphasis>L10n</emphasis> and <emphasis>I18n</emphasis>. Internationalization
         refers more to support for use of systems, regardless of special needs unique to groups of
         users related by language, region, number format conventions, financial conventions, time
         and date conventions, etc. Localization involves adding explicit support to systems for

+ 15 - 8
documentation/manual/en/module_specs/Zend_Translate-Adapters.xml

@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Reviewed: no -->
 <sect1 id="zend.translate.adapter">
-
     <title>Adapters for Zend_Translate</title>
 
     <para>
@@ -369,10 +368,14 @@
 
         <programlisting language="php"><![CDATA[
 try {
-    $translate = new Zend_Translate('Company_Translate_Adapter_MyFormat',
-                                    '/path/to/translate.xx',
-                                    'en',
-                                    array('myoption' => 'myvalue'));
+    $translate = new Zend_Translate(
+        array(
+            'adapter' => 'Company_Translate_Adapter_MyFormat',
+            'content' => '/path/to/translate.xx',
+            'locale'  => 'en',
+            'myoption' => 'myvalue'
+        )
+    );
 } catch (Exception $e) {
     // File not found, no adapter class...
     // General failure
@@ -406,9 +409,13 @@ $cache = Zend_Cache::factory('Core',
                              $frontendOptions,
                              $backendOptions);
 Zend_Translate::setCache($cache);
-$translate = new Zend_Translate('gettext',
-                                '/path/to/translate.mo',
-                                'en');
+$translate = new Zend_Translate(
+    array(
+        'adapter' => 'gettext',
+        'content' => '/path/to/translate.mo',
+        'locale'  => 'en'
+    )
+);
 ]]></programlisting>
 
         <note>

+ 168 - 58
documentation/manual/en/module_specs/Zend_Translate-Additional.xml

@@ -21,9 +21,9 @@
         </para>
 
         <para>
-            You can set options temporarily when using <code>addTranslation($data, $locale, array
-            $options = array())</code> as third and optional parameter. And you can use the method
-            <methodname>setOptions()</methodname> to set the options permanently.
+            You can set options temporarily by giving them to
+            <methodname>addTranslation()</methodname>. And you can use the method
+            <methodname>setOptions()</methodname> to set options permanent.
         </para>
 
         <example id="zend.translate..additional.options.example">
@@ -31,18 +31,25 @@
 
             <programlisting language="php"><![CDATA[
 // define ':' as separator for the translation source files
-$options = array('delimiter' => ':');
 $translate = new Zend_Translate(
-    'csv',
-    '/path/to/mytranslation.csv',
-    'de',
-    $options);
+    array(
+        'adapter' => 'csv',
+        'content' => '/path/to/mytranslation.csv',
+        'locale'  => 'de',
+        'delimiter' => ':'
+    )
+);
 
 ...
 
 // clear the defined language and use new translation data
-$options = array('clear' => true);
-$translate->addTranslation('/path/to/new.csv', 'fr', $options);
+$translate->addTranslation(
+    array(
+        'content' => '/path/to/new.csv',
+        'locale'  => 'fr',
+        'clear'   => true
+    )
+);
 ]]></programlisting>
         </example>
 
@@ -66,6 +73,20 @@ $translate->addTranslation('/path/to/new.csv', 'fr', $options);
 
                 <tbody>
                     <row>
+                        <entry>adapter</entry>
+                        <entry>Zend_Translate only</entry>
+
+                        <entry>
+                            Defines the adapter which will be used for the translation. This option
+                            can only be given when a new instance of
+                            <classname>Zend_Translate</classname> is created. When it is set
+                            afterwards, then it will be ignored
+                        </entry>
+
+                        <entry><emphasis>Must be set as it has no default value</emphasis></entry>
+                    </row>
+
+                    <row>
                         <entry>clear</entry>
                         <entry>all</entry>
 
@@ -79,6 +100,21 @@ $translate->addTranslation('/path/to/new.csv', 'fr', $options);
                     </row>
 
                     <row>
+                        <entry>content</entry>
+                        <entry>all</entry>
+
+                        <entry>
+                            Sets the content for the translation adapter. This could be an array,
+                            a filename or a directory. Which type of content is supported depends
+                            on the used adapter
+                        </entry>
+
+                        <entry>
+                            <emphasis>The default value depends on the used adapter</emphasis>
+                        </entry>
+                    </row>
+
+                    <row>
                         <entry>disableNotices</entry>
                         <entry>all</entry>
 
@@ -329,36 +365,48 @@ if ($translate->isAvailable("fr")) {
 // Example 1:
 // When no fitting language is found, the message ID is returned
 $translate = new Zend_Translate(
-    'gettext',
-    'my_it.mo',
-    'auto',
-    array('scan' => Zend_Translate::LOCALE_FILENAME));
+    array(
+        'adapter' => 'gettext',
+        'content' => 'my_it.mo',
+        'locale'  => 'auto',
+        'scan' => Zend_Translate::LOCALE_FILENAME
+    )
+);
 
 // Example 2:
 // Best found fitting language is 'fr'
 $translate = new Zend_Translate(
-    'gettext',
-    'my_fr.mo',
-    'auto',
-    array('scan' => Zend_Translate::LOCALE_FILENAME));
+    array(
+        'adapter' => 'gettext',
+        'content' => 'my_fr.mo',
+        'locale'  => 'auto',
+        'scan' => Zend_Translate::LOCALE_FILENAME
+    )
+);
 
 // Example 3:
 // Best found fitting language is 'de' ('de_AT' will be degraded)
 $translate = new Zend_Translate(
-    'gettext',
-    'my_de.mo',
-    'auto',
-    array('scan' => Zend_Translate::LOCALE_FILENAME));
+    array(
+        'adapter' => 'gettext',
+        'content' => 'my_de.mo',
+        'locale'  => 'auto',
+        'scan' => Zend_Translate::LOCALE_FILENAME
+    )
+);
 
 // Example 4:
 // Returns 'it' as translation source and overrides the automatic settings
 $translate = new Zend_Translate(
-    'gettext',
-    'my_it.mo',
-    'auto',
-    array('scan' => Zend_Translate::LOCALE_FILENAME));
+    array(
+        'adapter' => 'gettext',
+        'content' => 'my_it.mo',
+        'locale'  => 'auto',
+        'scan' => Zend_Translate::LOCALE_FILENAME
+    )
+);
 
-$translate->addTranslation('my_ru.mo', 'ru');
+$translate->addTranslation(array('content' => 'my_ru.mo', 'locale' => 'ru'));
 $translate->setLocale('it_IT');
 ]]></programlisting>
             </example>
@@ -391,7 +439,9 @@ Zend_Registry::set('Zend_Locale', $locale);
 $defaultlanguage = 'en';
 
 // somewhere in your application
-$translate = new Zend_Translate('gettext', 'my_de.mo');
+$translate = new Zend_Translate(
+    array('adapter' => 'gettext', 'content' => 'my_de.mo')
+);
 
 if (!$translate->isAvailable($locale->getLanguage())) {
     // not available languages are rerouted to another language
@@ -435,7 +485,9 @@ $translate->getLocale();
 //  /language/error/loginerror.tmx
 //  /language/error/logouterror.tmx
 
-$translate = new Zend_Translate('tmx', '/language');
+$translate = new Zend_Translate(
+    array('adapter' => 'tmx', 'content' => '/language')
+);
 ]]></programlisting>
         </example>
 
@@ -490,10 +542,12 @@ $translate = new Zend_Translate('tmx', '/language');
 //  /language/en/error/loginerror.mo
 
 $translate = new Zend_Translate(
-    'gettext',
-    '/language',
-    null,
-    array('scan' => Zend_Translate::LOCALE_DIRECTORY));
+    array(
+        'adapter' => 'gettext',
+        'content' => '/language',
+        'scan' => Zend_Translate::LOCALE_DIRECTORY
+    )
+);
 ]]></programlisting>
             </example>
 
@@ -541,10 +595,12 @@ $translate = new Zend_Translate(
 //  /language/error/loginerror_de.mo
 
 $translate = new Zend_Translate(
-    'gettext',
-    '/language',
-    null,
-    array('scan' => Zend_Translate::LOCALE_FILENAME));
+    array(
+        'adapter' => 'gettext',
+        'content' => '/language',
+        'scan' => Zend_Translate::LOCALE_FILENAME
+    )
+);
 ]]></programlisting>
             </example>
 
@@ -651,7 +707,14 @@ $translate = new Zend_Translate(
 
                 <programlisting><![CDATA[
 $options   = array('ignore' => 'test');
-$translate = new Zend_Translate($adapter, $content, $locale, $options);
+$translate = new Zend_Translate(
+    array(
+        'adapter' => $adapter,
+        'content' => $content,
+        'locale'  => $locale,
+        'ignore'  => 'test'
+    )
+);
 ]]></programlisting>
 
                 <para>
@@ -685,7 +748,14 @@ $translate = new Zend_Translate($adapter, $content, $locale, $options);
 
                 <programlisting><![CDATA[
 $options = array('ignore' => array('.', 'test', 'old'));
-$translate = new Zend_Translate($adapter, $content, $locale, $options);
+$translate = new Zend_Translate(
+    array(
+        'adapter' => $adapter,
+        'content' => $content,
+        'locale'  => $locale,
+        'ignore'  => array('.', 'test', 'old')
+    )
+);
 ]]></programlisting>
 
                 <para>
@@ -710,7 +780,14 @@ $translate = new Zend_Translate($adapter, $content, $locale, $options);
 
                 <programlisting><![CDATA[
 $options = array('ignore' => array('regex' => '/test/u', 'regex_2' => '/deleted$/u'));
-$translate = new Zend_Translate($adapter, $content, $locale, $options);
+$translate = new Zend_Translate(
+    array(
+        'adapter' => $adapter,
+        'content' => $content,
+        'locale'  => $locale,
+        'ignore'  => array('regex' => '/test/u', 'regex_2' => '/deleted$/u')
+    )
+);
 ]]></programlisting>
 
                 <para>
@@ -741,18 +818,22 @@ $translate = new Zend_Translate($adapter, $content, $locale, $options);
 
         <programlisting><![CDATA[
 $translate = new Zend_Translate(
-    'gettext',
-    '\path\to\translation.mo',
-    'en'
+    array(
+        'adapter' => 'gettext',
+        'content' => '\path\to\translation.mo',
+        'locale'  => 'en'
+    )
 );
 
 $translate_second = new Zend_Translate(
-    'array',
-    '\resources\languages\en\Zend_Validate.php',
-    'en'
+    array(
+        'adapter' => 'array',
+        'content' => '\resources\languages\en\Zend_Validate.php',
+        'locale'  => 'en'
+    )
 );
 
-$translate->addTranslation($translate_second);
+$translate->addTranslation(array('content' => $translate_second));
 ]]></programlisting>
 
         <para>
@@ -777,7 +858,12 @@ $translate->addTranslation($translate_second);
         </para>
 
         <programlisting><![CDATA[
-$translate->addTranslation($translate_second, 'en');
+$translate->addTranslation(
+    array(
+        'content' => $translate_second,
+        'locale'  => 'en'
+    )
+);
 ]]></programlisting>
 
         <para>
@@ -815,7 +901,13 @@ $english = array(
     'message2' => 'Nachricht 2',
     'message3' => 'Nachricht 3');
 
-$translate = new Zend_Translate('array', $english, 'de_AT');
+$translate = new Zend_Translate(
+    array(
+        'adapter' => 'array',
+        'content' => $english,
+        'locale' => 'de_AT'
+    )
+);
 
 if ($translate->isTranslated('message1')) {
     print "'message1' can be translated";
@@ -852,16 +944,25 @@ if ($translate->isTranslated('message1', false, 'de')) {
             <title>Log translations</title>
 
             <programlisting language="php"><![CDATA[
-$translate = new Zend_Translate('gettext', $path, 'de');
+$translate = new Zend_Translate(
+    array(
+        'adapter' => 'gettext',
+        'content' => $path,
+        'locale' => 'de'
+    )
+);
 
 // Create a log instance
 $writer = new Zend_Log_Writer_Stream('/path/to/file.log');
 $log    = new Zend_Log($writer);
 
 // Attach it to the translation instance
-$translate->setOptions(array(
-    'log'             => $log,
-    'logUntranslated' => true));
+$translate->setOptions(
+    array(
+        'log'             => $log,
+        'logUntranslated' => true
+    )
+);
 
 $translate->translate('unknown string');
 ]]></programlisting>
@@ -899,17 +1000,26 @@ $translate->translate('unknown string');
             <title>Self defined log messages</title>
 
             <programlisting language="php"><![CDATA[
-$translate = new Zend_Translate('gettext', $path, 'de');
+$translate = new Zend_Translate(
+    array(
+        'adapter' => 'gettext',
+        'content' => $path,
+        'locale'  => 'de'
+    )
+);
 
 // Create a log instance
 $writer = new Zend_Log_Writer_Stream('/path/to/file.log');
 $log    = new Zend_Log($writer);
 
 // Attach it to the translation instance
-$translate->setOptions(array(
-    'log'             => $log,
-    'logMessage'      => "Missing '%message%' within locale '%locale%'",
-    'logUntranslated' => true));
+$translate->setOptions(
+    array(
+        'log'             => $log,
+        'logMessage'      => "Missing '%message%' within locale '%locale%'",
+        'logUntranslated' => true
+    )
+);
 
 $translate->translate('unknown string');
 ]]></programlisting>

+ 30 - 8
documentation/manual/en/module_specs/Zend_Translate-Plurals.xml

@@ -55,7 +55,13 @@
             </para>
 
             <programlisting language="php"><![CDATA[
-$translate = new Zend_Translate('gettext', '/path/to/german.mo', 'de');
+$translate = new Zend_Translate(
+    array(
+        'adapter' => 'gettext',
+        'content' => '/path/to/german.mo',
+        'locale'  => 'de'
+    )
+);
 $translate->plural('Car', 'Cars', $number);
 ]]></programlisting>
         </example>
@@ -86,7 +92,13 @@ $translate->plural('Car', 'Cars', $number);
             </para>
 
             <programlisting language="php"><![CDATA[
-$translate = new Zend_Translate('gettext', '/path/to/german.mo', 'de');
+$translate = new Zend_Translate(
+    array(
+        'adapter' => 'gettext',
+        'content' => '/path/to/german.mo',
+        'locale'  => 'de'
+    )
+);
 $translate->translate(array('Car', 'Cars', $number));
 ]]></programlisting>
         </example>
@@ -105,12 +117,22 @@ $translate->translate(array('Car', 'Cars', $number));
             </para>
 
             <programlisting language="php"><![CDATA[
-$translate = new Zend_Translate('gettext', '/path/to/german.mo', 'de');
-$translate->translate(array('Car',
-                            'Cars first plural',
-                            'Cars second plural',
-                            $number,
-                            'ru'));
+$translate = new Zend_Translate(
+    array(
+        'adapter' => 'gettext',
+        'content' => '/path/to/german.mo',
+        'locale'  => 'de'
+    )
+);
+$translate->translate(
+    array(
+        'Car',
+        'Cars first plural',
+        'Cars second plural',
+        $number,
+        'ru'
+    )
+);
 ]]></programlisting>
         </example>
 

+ 77 - 17
documentation/manual/en/module_specs/Zend_Translate-SourceCreation.xml

@@ -39,8 +39,14 @@ $german = array(
     'message2' => 'Nachricht2',
     'message3' => 'Nachricht3');
 
-$translate = new Zend_Translate('array', $english, 'en');
-$translate->addTranslation($deutsch, 'de');
+$translate = new Zend_Translate(
+    array(
+        'adapter' => 'array',
+        'content' => $english,
+        'locale'  => 'en'
+    )
+);
+$translate->addTranslation(array('content' => $deutsch, 'locale' => 'de'));
 ]]></programlisting>
 
         <para>
@@ -57,7 +63,13 @@ return array(
     'message3' => 'Nachricht3');
 
 // controller
-$translate = new Zend_Translate('array', '/path/to/myarray.php', 'de');
+$translate = new Zend_Translate(
+    array(
+        'adapter' => 'array',
+        'content' => '/path/to/myarray.php',
+        'locale'  => 'de'
+    )
+);
 ]]></programlisting>
 
         <note>
@@ -84,8 +96,19 @@ $translate = new Zend_Translate('array', '/path/to/myarray.php', 'de');
 
         <programlisting language="php"><![CDATA[
 // We accume that we have created the mo files and translated them
-$translate = new Zend_Translate('gettext', '/path/to/english.mo', 'en');
-$translate->addTranslation('/path/to/german.mo', 'de');
+$translate = new Zend_Translate(
+    array(
+        'adapter' => 'gettext',
+        'content' => '/path/to/english.mo',
+        'locale'  => 'en'
+    )
+);
+$translate->addTranslation(
+    array(
+        'content' => '/path/to/german.mo',
+        'locale' => 'de'
+    )
+);
 ]]></programlisting>
 
         <para>
@@ -128,7 +151,13 @@ $translate->addTranslation('/path/to/german.mo', 'de');
 
         <programlisting language="php"><![CDATA[
 // Getting the adapter informations
-$translate = new Zend_Translate('gettext', '/path/to/english.mo', 'en');
+$translate = new Zend_Translate(
+    array(
+        'adapter' => 'gettext',
+        'content' => '/path/to/english.mo',
+        'locale'  => 'en'
+    )
+);
 print_r($translate->getAdapterInfo());
 ]]></programlisting>
     </sect2>
@@ -170,7 +199,13 @@ print_r($translate->getAdapterInfo());
 ]]></programlisting>
 
             <programlisting language="php"><![CDATA[
-$translate = new Zend_Translate('tmx', 'path/to/mytranslation.tmx', 'en');
+$translate = new Zend_Translate(
+    array(
+        'adapter' => 'tmx',
+        'content' => 'path/to/mytranslation.tmx',
+        'locale'  => 'en'
+    )
+);
 ]]></programlisting>
         </example>
 
@@ -230,8 +265,14 @@ message2;Nachricht2
 ]]></programlisting>
 
             <programlisting language="php"><![CDATA[
-$translate = new Zend_Translate('csv', '/path/to/mytranslation.csv', 'de');
-$translate->addTranslation('path/to/other.csv', 'fr');
+$translate = new Zend_Translate(
+    array(
+        'adapter' => 'csv',
+        'content' => '/path/to/mytranslation.csv',
+        'locale'  => 'de'
+    )
+);
+$translate->addTranslation(array('content' => 'path/to/other.csv', 'locale' => 'fr'));
 ]]></programlisting>
         </example>
 
@@ -271,12 +312,20 @@ message2,"Nachricht,2"
 
             <programlisting language="php"><![CDATA[
 $translate = new Zend_Translate(
-    'csv',
-    '/path/to/mytranslation.csv',
-    'de',
-    array('delimiter' => ','));
-
-$translate->addTranslation('/path/to/other.csv', 'fr');
+    array(
+        'adapter' => 'csv',
+        'content' => '/path/to/mytranslation.csv',
+        'locale'  => 'de',
+        'delimiter' => ','
+    )
+);
+
+$translate->addTranslation(
+    array(
+        'content' => '/path/to/other.csv',
+        'locale' => 'fr'
+    )
+);
 ]]></programlisting>
         </example>
 
@@ -310,8 +359,19 @@ Message_3="Nachricht :3 (de)"
 ]]></programlisting>
 
             <programlisting language="php"><![CDATA[
-$translate = new Zend_Translate('ini', '/path/to/mytranslation.ini', 'de');
-$translate->addTranslation('/path/to/other.ini', 'it');
+$translate = new Zend_Translate(
+    array(
+        'adapter' => 'ini',
+        'content' => '/path/to/mytranslation.ini',
+        'locale'  => 'de'
+    )
+);
+$translate->addTranslation(
+    array(
+        'content' => '/path/to/other.ini',
+        'locale' => 'it'
+    )
+);
 ]]></programlisting>
         </example>
 

+ 18 - 5
documentation/manual/en/module_specs/Zend_Translate-Using.xml

@@ -36,8 +36,19 @@ print "Here is line two\n";
         <title>Example of multi-lingual PHP code</title>
 
         <programlisting language="php"><![CDATA[
-$translate = new Zend_Translate('gettext', '/my/path/source-de.mo', 'de');
-$translate->addTranslation('/path/to/translation/fr-source.mo', 'fr');
+$translate = new Zend_Translate(
+    array(
+        'adapter' => 'gettext',
+        'content' => '/my/path/source-de.mo',
+        'locale'  => 'de'
+    )
+);
+$translate->addTranslation(
+    array(
+        'content' => '/path/to/translation/fr-source.mo',
+        'locale'  => 'fr'
+    )
+);
 
 print $translate->_("Example") . "\n";
 print "=======\n";
@@ -60,9 +71,11 @@ print $translate->_("Here is line two") . "\n";
 
         <programlisting language="php"><![CDATA[
 $translate = new Zend_Translate
-    'gettext',
-    '/path/to/translation/source-de.mo',
-    'de'
+    array(
+        'adapter' => 'gettext',
+        'content' => '/path/to/translation/source-de.mo',
+        'locale'  => 'de'
+    )
 );
 ]]></programlisting>
 

+ 6 - 4
documentation/manual/en/module_specs/Zend_Validate-Messages.xml

@@ -79,10 +79,12 @@ $validator->setMessage('Please enter a lower value', Zend_Validate_GreaterThan::
 
         <programlisting language="php"><![CDATA[
 $translator = new Zend_Translate(
-    'array',
-    '/resources/languages',
-    $language,
-    array('scan' => Zend_Translate::LOCALE_DIRECTORY)
+    array(
+        'adapter' => 'array',
+        'content' => '/resources/languages',
+        'locale'  => $language,
+        'scan' => Zend_Translate::LOCALE_DIRECTORY
+    )
 );
 Zend_Validate_Abstract::setDefaultTranslator($translator);
 ]]></programlisting>

+ 14 - 6
documentation/manual/en/module_specs/Zend_Validate.xml

@@ -317,9 +317,13 @@ if (Zend_Validate::is($value, 'OtherValidator', array('min' => 1, 'max' => 12))
         <programlisting language="php"><![CDATA[
 $validator = new Zend_Validate_StringLength(array('min' => 8, 'max' => 12));
 $translate = new Zend_Translate(
-    'array',
-    array(Zend_Validate_StringLength::TOO_SHORT => 'Translated \'%value%\''),
-    'en'
+    array(
+        'adapter' => 'array',
+        'content' => array(
+            Zend_Validate_StringLength::TOO_SHORT => 'Translated \'%value%\''
+        ),
+        'locale' => 'en'
+    )
 );
 
 $validator->setTranslator($translate);
@@ -335,9 +339,13 @@ $validator->setTranslator($translate);
 
         <programlisting language="php"><![CDATA[
 $translate = new Zend_Translate(
-    'array',
-    array(Zend_Validate_StringLength::TOO_SHORT => 'Translated \'%value%\''),
-    'en'
+    array(
+        'adapter' => 'array',
+        'content' => array(
+            Zend_Validate_StringLength::TOO_SHORT => 'Translated \'%value%\''
+        ),
+        'locale' => 'en'
+    )
 );
 Zend_Validate::setDefaultTranslator($translate);
 ]]></programlisting>

+ 21 - 3
documentation/manual/en/module_specs/Zend_View-Helpers-Translate.xml

@@ -68,7 +68,13 @@
 
         <programlisting language="php"><![CDATA[
 // our example adapter
-$adapter = new Zend_Translate('array', array('simple' => 'einfach'), 'de');
+$adapter = new Zend_Translate(
+    array(
+        'adapter' => 'array',
+        'content' => array('simple' => 'einfach'),
+        'locale'  => 'de'
+    )
+);
 Zend_Registry::set('Zend_Translate', $adapter);
 
 // within your view
@@ -94,7 +100,13 @@ echo $this->translate('simple');
 
         <programlisting language="php"><![CDATA[
 // within your view
-$adapter = new Zend_Translate('array', array('simple' => 'einfach'), 'de');
+$adapter = new Zend_Translate(
+    array(
+        'adapter' => 'array',
+        'content' => array('simple' => 'einfach'),
+        'locale'  => 'de'
+    )
+);
 $this->translate()->setTranslator($adapter)->translate('simple');
 // this returns 'einfach'
 ]]></programlisting>
@@ -110,7 +122,13 @@ $this->translate()->setTranslator($adapter)->translate('simple');
 
         <programlisting language="php"><![CDATA[
 // our example adapter
-$adapter = new Zend_Translate('array', array('simple' => 'einfach'), 'de');
+$adapter = new Zend_Translate(
+    array(
+        'adapter' => 'array',
+        'content' => array('simple' => 'einfach'),
+        'locale'  => 'de'
+    )
+);
 
 // initiate the adapter
 $translate = new Zend_View_Helper_Translate($adapter);

+ 3 - 1
documentation/manual/en/ref/migration-110.xml

@@ -240,7 +240,9 @@ $authors = $feed->getAuthors()->getValues();
             </para>
 
             <programlisting language="php"><![CDATA[
-$trans = new Zend_Translate('xliff', '/path/to/source', $locale, array('useId' => false));
+$trans = new Zend_Translate(
+    'xliff', '/path/to/source', $locale, array('useId' => false)
+);
 ]]></programlisting>
         </sect3>
     </sect2>

+ 57 - 18
library/Zend/Translate.php

@@ -59,42 +59,81 @@ class Zend_Translate {
     /**
      * Generates the standard translation object
      *
-     * @param  string              $adapter  Adapter to use
-     * @param  array               $data     OPTIONAL Translation source data for the adapter
-     *                                       Depends on the Adapter
-     * @param  string|Zend_Locale  $locale   OPTIONAL locale to use
-     * @param  array               $options  OPTIONAL options for the adapter
+     * @param  array|Zend_Config $options Options to use
      * @throws Zend_Translate_Exception
      */
-    public function __construct($adapter, $data = null, $locale = null, array $options = array())
+    public function __construct($options = array())
     {
-        $this->setAdapter($adapter, $data, $locale, $options);
+        if ($options instanceof Zend_Config) {
+            $options = $options->toArray();
+        } else if (func_num_args() > 1) {
+            $args               = func_get_args();
+            $options            = array();
+            $options['adapter'] = array_shift($args);
+            if (!empty($args)) {
+                $options['content'] = array_shift($args);
+            }
+
+            if (!empty($args)) {
+                $options['locale'] = array_shift($args);
+            }
+
+            if (!empty($args)) {
+                $opt     = array_shift($args);
+                $options = array_merge($opt, $options);
+            }
+        } else if (!is_array($options)) {
+            $options = array('adapter' => $options);
+        }
+
+        $this->setAdapter($options);
     }
 
     /**
      * Sets a new adapter
      *
-     * @param  string              $adapter  Adapter to use
-     * @param  string|array        $data     OPTIONAL Translation data
-     * @param  string|Zend_Locale  $locale   OPTIONAL locale to use
-     * @param  array               $options  OPTIONAL Options to use
+     * @param  array|Zend_Config $options Options to use
      * @throws Zend_Translate_Exception
      */
-    public function setAdapter($adapter, $data = null, $locale = null, array $options = array())
+    public function setAdapter($options = array())
     {
-        if (Zend_Loader::isReadable('Zend/Translate/Adapter/' . ucfirst($adapter). '.php')) {
-            $adapter = 'Zend_Translate_Adapter_' . ucfirst($adapter);
+        if ($options instanceof Zend_Config) {
+            $options = $options->toArray();
+        } else if (func_num_args() > 1) {
+            $args               = func_get_args();
+            $options            = array();
+            $options['adapter'] = array_shift($args);
+            if (!empty($args)) {
+                $options['content'] = array_shift($args);
+            }
+
+            if (!empty($args)) {
+                $options['locale'] = array_shift($args);
+            }
+
+            if (!empty($args)) {
+                $opt     = array_shift($args);
+                $options = array_merge($opt, $options);
+            }
+        } else if (!is_array($options)) {
+            $options = array('adapter' => $options);
+        }
+
+        if (Zend_Loader::isReadable('Zend/Translate/Adapter/' . ucfirst($options['adapter']). '.php')) {
+            $options['adapter'] = 'Zend_Translate_Adapter_' . ucfirst($options['adapter']);
         }
 
-        if (!class_exists($adapter)) {
-            Zend_Loader::loadClass($adapter);
+        if (!class_exists($options['adapter'])) {
+            Zend_Loader::loadClass($options['adapter']);
         }
 
         if (self::$_cache !== null) {
-            call_user_func(array($adapter, 'setCache'), self::$_cache);
+            call_user_func(array($options['adapter'], 'setCache'), self::$_cache);
         }
 
-        $this->_adapter = new $adapter($data, $locale, $options);
+        $adapter = $options['adapter'];
+        unset($options['adapter']);
+        $this->_adapter = new $adapter($options);
         if (!$this->_adapter instanceof Zend_Translate_Adapter) {
             require_once 'Zend/Translate/Exception.php';
             throw new Zend_Translate_Exception("Adapter " . $adapter . " does not extend Zend_Translate_Adapter");

+ 111 - 60
library/Zend/Translate/Adapter.php

@@ -66,7 +66,7 @@ abstract class Zend_Translate_Adapter {
 
     /**
      * Array with all options, each adapter can have own additional options
-     *   'clear'           => when true, clears already loaded data when adding new files
+     *   'clear'           => when true, clears already loaded translations when adding new files
      *   'content'         => content to translate or file or directory with content
      *   'disableNotices'  => when true, omits notices from being displayed
      *   'ignore'          => a prefix for files and directories which are not being added
@@ -101,15 +101,31 @@ abstract class Zend_Translate_Adapter {
     /**
      * Generates the adapter
      *
-     * @param  string|array       $content OPTIONAL Translation content or filename for this adapter
-     * @param  string|Zend_Locale $locale  OPTIONAL Locale/Language to set, identical with Locale
-     *                                     identifiers see Zend_Locale for more information
-     * @param  array              $options OPTIONAL Options for the adaptor
+     * @param  array|Zend_Config $options Translation options for this adapter
      * @throws Zend_Translate_Exception
      * @return void
      */
-    public function __construct($content = null, $locale = null, array $options = array())
+    public function __construct($options = array())
     {
+        if ($options instanceof Zend_Config) {
+            $options = $options->toArray();
+        } else if (func_num_args() > 1) {
+            $args               = func_get_args();
+            $options            = array();
+            $options['content'] = array_shift($args);
+
+            if (!empty($args)) {
+                $options['locale'] = array_shift($args);
+            }
+
+            if (!empty($args)) {
+                $opt     = array_shift($args);
+                $options = array_merge($opt, $options);
+            }
+        } else if (!is_array($options)) {
+            $options = array('content' => $options);
+        }
+
         if (isset(self::$_cache)) {
             $id = 'Zend_Translate_' . $this->toString() . '_Options';
             $result = self::$_cache->load($id);
@@ -118,44 +134,65 @@ abstract class Zend_Translate_Adapter {
             }
         }
 
-        if (($locale === "auto") or ($locale === null)) {
+        if (empty($options['locale']) || ($options['locale'] === "auto")) {
             $this->_automatic = true;
         } else {
             $this->_automatic = false;
         }
 
+        $locale = null;
+        if (!empty($options['locale'])) {
+            $locale = $options['locale'];
+            unset($options['locale']);
+        }
+
         $this->setOptions($options);
-        if ($content !== null) {
-            $this->addTranslation($content, $locale, $options);
+        $options['locale'] = $locale;
+
+        if (!empty($options['content'])) {
+            $this->addTranslation($options);
         }
 
-        if ($this->getLocale() !== (string) $locale) {
-            $this->setLocale($locale);
+        if ($this->getLocale() !== (string) $options['locale']) {
+            $this->setLocale($options['locale']);
         }
     }
 
     /**
-     * Add translation data
+     * Add translations
      *
-     * It may be a new language or additional data for existing language
-     * If $clear parameter is true, then translation data for specified
-     * language is replaced and added otherwise
+     * This may be a new language or additional content for an existing language
+     * If the key 'clear' is true, then translations for the specified
+     * language will be replaced and added otherwise
      *
-     * @param  array|string       $data    Translation data
-     * @param  string|Zend_Locale $locale  (optional) Locale/Language to add data for, identical
-     *                                        with locale identifier, see Zend_Locale for more information
-     * @param  array              $options (optional) Option for this Adapter
+     * @param  array|Zend_Config $options Options and translations to be added
      * @throws Zend_Translate_Exception
      * @return Zend_Translate_Adapter Provides fluent interface
      */
-    public function addTranslation($data, $locale = null, array $options = array())
+    public function addTranslation($options = array())
     {
-        $originate = (string) $locale;
-        if (array_key_exists('locale', $options)) {
-            if ($locale == null) {
-                $locale = $options['locale'];
+        if ($options instanceof Zend_Config) {
+            $options = $options->toArray();
+        } else if (func_num_args() > 1) {
+            $args = func_get_args();
+            $options            = array();
+            $options['content'] = array_shift($args);
+
+            if (!empty($args)) {
+                $options['locale'] = array_shift($args);
             }
-            unset($options['locale']);
+
+            if (!empty($args)) {
+                $opt     = array_shift($args);
+                $options = array_merge($opt, $options);
+            }
+        } else if (!is_array($options)) {
+            $options = array('content' => $options);
+        }
+
+        $originate = null;
+        if (!empty($options['locale'])) {
+            $originate = (string) $options['locale'];
         }
 
         if ((array_key_exists('log', $options)) && !($options['log'] instanceof Zend_Log)) {
@@ -164,20 +201,20 @@ abstract class Zend_Translate_Adapter {
         }
 
         try {
-            if (!($data instanceof Zend_Translate) && !($data instanceof Zend_Translate_Adapter)) {
-                $locale = Zend_Locale::findLocale($locale);
+            if (!($options['content'] instanceof Zend_Translate) && !($options['content'] instanceof Zend_Translate_Adapter)) {
+                $options['locale'] = Zend_Locale::findLocale($options['locale']);
             }
         } catch (Zend_Locale_Exception $e) {
             require_once 'Zend/Translate/Exception.php';
-            throw new Zend_Translate_Exception("The given Language '{$locale}' does not exist", 0, $e);
+            throw new Zend_Translate_Exception("The given Language '{$options['locale']}' does not exist", 0, $e);
         }
 
         $options  = $options + $this->_options;
-        if (is_string($data) and is_dir($data)) {
-            $data = realpath($data);
+        if (is_string($options['content']) and is_dir($options['content'])) {
+            $options['content'] = realpath($options['content']);
             $prev = '';
             foreach (new RecursiveIteratorIterator(
-                     new RecursiveDirectoryIterator($data, RecursiveDirectoryIterator::KEY_AS_PATHNAME),
+                     new RecursiveDirectoryIterator($options['content'], RecursiveDirectoryIterator::KEY_AS_PATHNAME),
                      RecursiveIteratorIterator::SELF_FIRST) as $directory => $info) {
                 $file = $info->getFilename();
                 if (is_array($options['ignore'])) {
@@ -202,8 +239,8 @@ abstract class Zend_Translate_Adapter {
                 if ($info->isDir()) {
                     // pathname as locale
                     if (($options['scan'] === self::LOCALE_DIRECTORY) and (Zend_Locale::isLocale($file, true, false))) {
-                        $locale = $file;
-                        $prev   = (string) $locale;
+                        $options['locale'] = $file;
+                        $prev              = (string) $options['locale'];
                     }
                 } else if ($info->isFile()) {
                     // filename as locale
@@ -212,7 +249,7 @@ abstract class Zend_Translate_Adapter {
                         array_pop($filename);
                         $filename = implode('.', $filename);
                         if (Zend_Locale::isLocale((string) $filename, true, false)) {
-                            $locale = (string) $filename;
+                            $options['locale'] = (string) $filename;
                         } else {
                             $parts  = explode('.', $file);
                             $parts2 = array();
@@ -230,8 +267,8 @@ abstract class Zend_Translate_Adapter {
                             foreach($parts as $token) {
                                 if (Zend_Locale::isLocale($token, true, false)) {
                                     if (strlen($prev) <= strlen($token)) {
-                                        $locale = $token;
-                                        $prev   = $token;
+                                        $options['locale'] = $token;
+                                        $prev              = $token;
                                     }
                                 }
                             }
@@ -239,14 +276,15 @@ abstract class Zend_Translate_Adapter {
                     }
 
                     try {
-                        $this->_addTranslationData($info->getPathname(), (string) $locale, $options);
+                        $options['content'] = $info->getPathname();
+                        $this->_addTranslationData($options);
                     } catch (Zend_Translate_Exception $e) {
                         // ignore failed sources while scanning
                     }
                 }
             }
         } else {
-            $this->_addTranslationData($data, (string) $locale, $options);
+            $this->_addTranslationData($options);
         }
 
         if ((isset($this->_translate[$originate]) === true) and (count($this->_translate[$originate]) > 0)) {
@@ -464,29 +502,42 @@ abstract class Zend_Translate_Adapter {
     /**
      * Internal function for adding translation data
      *
-     * It may be a new language or additional data for existing language
-     * If $clear parameter is true, then translation data for specified
+     * This may be a new language or additional data for an existing language
+     * If the options 'clear' is true, then the translation data for the specified
      * language is replaced and added otherwise
      *
      * @see    Zend_Locale
-     * @param  array|string       $data    Translation data
-     * @param  string|Zend_Locale $locale  Locale/Language to add data for, identical with locale identifier,
-     *                                     @see Zend_Locale for more information
-     * @param  array              $options (optional) Option for this Adapter
+     * @param  array|Zend_Config $content Translation data to add
      * @throws Zend_Translate_Exception
      * @return Zend_Translate_Adapter Provides fluent interface
      */
-    private function _addTranslationData($data, $locale, array $options = array())
+    private function _addTranslationData($options = array())
     {
-        if (($data instanceof Zend_Translate) || ($data instanceof Zend_Translate_Adapter)) {
+        if ($options instanceof Zend_Config) {
+            $options = $options->toArray();
+        } else if (func_num_args() > 1) {
+            $args = func_get_args();
+            $options['content'] = array_shift($args);
+
+            if (!empty($args)) {
+                $options['locale'] = array_shift($args);
+            }
+
+            if (!empty($args)) {
+                $options += array_shift($args);
+            }
+        }
+
+        if (($options['content'] instanceof Zend_Translate) || ($options['content'] instanceof Zend_Translate_Adapter)) {
             $options['usetranslateadapter'] = true;
-            if (!empty($locale)) {
-                $data = $data->getMessages($locale);
+            if (!empty($options['locale'])) {
+                $options['content'] = $options['content']->getMessages($options['locale']);
             } else {
-                $locales = $data->getList();
+                $locales = $options['content']->getList();
                 foreach ($locales as $locale) {
-                    $trans = $data->getMessages($locale);
-                    $this->_addTranslationData($trans, $locale, $options);
+                    $options['locale']  = $locale;
+                    $options['content'] = $options['content']->getMessages($locale);
+                    $this->_addTranslationData($options);
                 }
 
                 return $this;
@@ -494,19 +545,19 @@ abstract class Zend_Translate_Adapter {
         }
 
         try {
-            $locale = Zend_Locale::findLocale($locale);
+            $options['locale'] = Zend_Locale::findLocale($options['locale']);
         } catch (Zend_Locale_Exception $e) {
             require_once 'Zend/Translate/Exception.php';
-            throw new Zend_Translate_Exception("The given Language '{$locale}' does not exist", 0, $e);
+            throw new Zend_Translate_Exception("The given Language '{$options['locale']}' does not exist", 0, $e);
         }
 
-        if ($options['clear'] || !isset($this->_translate[$locale])) {
-            $this->_translate[$locale] = array();
+        if ($options['clear'] || !isset($this->_translate[$options['locale']])) {
+            $this->_translate[$options['locale']] = array();
         }
 
         $read = true;
         if (isset(self::$_cache)) {
-            $id = 'Zend_Translate_' . md5(serialize($data)) . '_' . $this->toString();
+            $id = 'Zend_Translate_' . md5(serialize($options['content'])) . '_' . $this->toString();
             $temp = self::$_cache->load($id);
             if ($temp) {
                 $read = false;
@@ -519,9 +570,9 @@ abstract class Zend_Translate_Adapter {
 
         if ($read) {
             if (!empty($options['usetranslateadapter'])) {
-                $temp = array($locale => $data);
+                $temp = array($options['locale'] => $options['content']);
             } else {
-                $temp = $this->_loadTranslationData($data, $locale, $options);
+                $temp = $this->_loadTranslationData($options['content'], $options['locale'], $options);
             }
         }
 
@@ -541,7 +592,7 @@ abstract class Zend_Translate_Adapter {
         }
 
         if ($this->_automatic === true) {
-            $find = new Zend_Locale($locale);
+            $find = new Zend_Locale($options['locale']);
             $browser = $find->getEnvironment() + $find->getBrowser();
             arsort($browser);
             foreach($browser as $language => $quality) {
@@ -553,7 +604,7 @@ abstract class Zend_Translate_Adapter {
         }
 
         if (($read) and (isset(self::$_cache))) {
-            $id = 'Zend_Translate_' . md5(serialize($data)) . '_' . $this->toString();
+            $id = 'Zend_Translate_' . md5(serialize($options['content'])) . '_' . $this->toString();
             self::$_cache->save($temp, $id, array('Zend_Translate'));
         }
 

+ 23 - 6
library/Zend/Translate/Adapter/Csv.php

@@ -40,17 +40,34 @@ class Zend_Translate_Adapter_Csv extends Zend_Translate_Adapter
     /**
      * Generates the adapter
      *
-     * @param  string              $data     OPTIONAL Translation data
-     * @param  string|Zend_Locale  $locale   OPTIONAL Locale/Language to set, identical with locale identifier,
-     *                                       see Zend_Locale for more information
-     * @param  array               $options  OPTIONAL Options for this adapter
+     * @param  array|Zend_Config $options Translation content
      */
-    public function __construct($data = null, $locale = null, array $options = array())
+    public function __construct($options = array())
     {
         $this->_options['delimiter'] = ";";
         $this->_options['length']    = 0;
         $this->_options['enclosure'] = '"';
-        parent::__construct($data, $locale, $options);
+
+        if ($options instanceof Zend_Config) {
+            $options = $options->toArray();
+        } else if (func_num_args() > 1) {
+            $args               = func_get_args();
+            $options            = array();
+            $options['content'] = array_shift($args);
+
+            if (!empty($args)) {
+                $options['locale'] = array_shift($args);
+            }
+
+            if (!empty($args)) {
+                $opt     = array_shift($args);
+                $options = array_merge($opt, $options);
+            }
+        } else if (!is_array($options)) {
+            $options = array('content' => $options);
+        }
+
+        parent::__construct($options);
     }
 
     /**

+ 2 - 1
tests/Zend/Translate/Adapter/ArrayTest.php

@@ -99,7 +99,7 @@ class Zend_Translate_Adapter_ArrayTest extends PHPUnit_Framework_TestCase
 
     public function testToString()
     {
-        $adapter = new Zend_Translate_Adapter_Array(array('msg1' => 'Message 1 (en)', 'msg2' => 'Message 2 (en)', 'msg3' => 'Message 3 (en)'));
+        $adapter = new Zend_Translate_Adapter_Array(array('msg1' => 'Message 1 (en)', 'msg2' => 'Message 2 (en)', 'msg3' => 'Message 3 (en)'), 'en');
         $this->assertEquals('Array', $adapter->toString());
     }
 
@@ -156,6 +156,7 @@ class Zend_Translate_Adapter_ArrayTest extends PHPUnit_Framework_TestCase
             array(
                 'testoption'      => 'testkey',
                 'clear'           => false,
+                'content'         => dirname(__FILE__) . '/_files/translation_en.php',
                 'scan'            => null,
                 'locale'          => 'en',
                 'ignore'          => '.',

+ 1 - 0
tests/Zend/Translate/Adapter/CsvTest.php

@@ -131,6 +131,7 @@ class Zend_Translate_Adapter_CsvTest extends PHPUnit_Framework_TestCase
                 'delimiter'       => ';',
                 'testoption'      => 'testkey',
                 'clear'           => false,
+                'content'         => dirname(__FILE__) . '/_files/translation_en.csv',
                 'scan'            => null,
                 'locale'          => 'en',
                 'length'          => 0,

+ 1 - 0
tests/Zend/Translate/Adapter/GettextTest.php

@@ -134,6 +134,7 @@ class Zend_Translate_Adapter_GettextTest extends PHPUnit_Framework_TestCase
             array(
                 'testoption'      => 'testkey',
                 'clear'           => false,
+                'content'         => dirname(__FILE__) . '/_files/translation_en.mo',
                 'scan'            => null,
                 'locale'          => 'en',
                 'ignore'          => '.',

+ 1 - 0
tests/Zend/Translate/Adapter/IniTest.php

@@ -127,6 +127,7 @@ class Zend_Translate_Adapter_IniTest extends PHPUnit_Framework_TestCase
             array(
                 'testoption'      => 'testkey',
                 'clear'           => false,
+                'content'         => dirname(__FILE__) . '/_files/translation_en.ini',
                 'scan'            => null,
                 'locale'          => 'en',
                 'ignore'          => '.',

+ 1 - 0
tests/Zend/Translate/Adapter/QtTest.php

@@ -126,6 +126,7 @@ class Zend_Translate_Adapter_QtTest extends PHPUnit_Framework_TestCase
             array(
                 'testoption'      => 'testkey',
                 'clear'           => false,
+                'content'         => dirname(__FILE__) . '/_files/translation_en.ts',
                 'scan'            => null,
                 'locale'          => 'en',
                 'ignore'          => '.',

+ 1 - 0
tests/Zend/Translate/Adapter/TbxTest.php

@@ -125,6 +125,7 @@ class Zend_Translate_Adapter_TbxTest extends PHPUnit_Framework_TestCase
             array(
                 'testoption'      => 'testkey',
                 'clear'           => false,
+                'content'         => dirname(__FILE__) . '/_files/translation_en.tbx',
                 'scan'            => null,
                 'locale'          => 'en',
                 'ignore'          => '.',

+ 1 - 0
tests/Zend/Translate/Adapter/TmxTest.php

@@ -126,6 +126,7 @@ class Zend_Translate_Adapter_TmxTest extends PHPUnit_Framework_TestCase
             array(
                 'testoption'      => 'testkey',
                 'clear'           => false,
+                'content'         => dirname(__FILE__) . '/_files/translation_en.tmx',
                 'scan'            => null,
                 'locale'          => 'en',
                 'ignore'          => '.',

+ 1 - 0
tests/Zend/Translate/Adapter/XliffTest.php

@@ -126,6 +126,7 @@ class Zend_Translate_Adapter_XliffTest extends PHPUnit_Framework_TestCase
             array(
                 'testoption'      => 'testkey',
                 'clear'           => false,
+                'content'         => dirname(__FILE__) . '/_files/translation_en.xliff',
                 'scan'            => null,
                 'locale'          => 'en',
                 'ignore'          => '.',

+ 1 - 0
tests/Zend/Translate/Adapter/XmlTmTest.php

@@ -126,6 +126,7 @@ class Zend_Translate_Adapter_XmlTmTest extends PHPUnit_Framework_TestCase
             array(
                 'testoption'      => 'testkey',
                 'clear'           => false,
+                'content'         => dirname(__FILE__) . '/_files/translation_en.xmltm',
                 'scan'            => null,
                 'locale'          => 'en',
                 'ignore'          => '.',