Просмотр исходного кода

[ZF-9591] Zend_Application:

- fixed wrong called translation instance

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@21769 44c647ce-9c0f-0410-b52a-842ac1e357ba
thomas 16 лет назад
Родитель
Сommit
c6fe8fdbc8

+ 17 - 8
library/Zend/Application/Resource/Translate.php

@@ -72,13 +72,25 @@ class Zend_Application_Resource_Translate extends Zend_Application_Resource_Reso
                 throw new Zend_Application_Resource_Exception('No translation source data provided.');
             }
 
-            $adapter = isset($options['adapter']) ? $options['adapter'] : Zend_Translate::AN_ARRAY;
-            $locale  = isset($options['locale'])  ? $options['locale']  : null;
-            $translateOptions = isset($options['options']) ? $options['options'] : array();
+            if (empty($options['adapter'])) {
+                $options['adapter'] = Zend_Translate::AN_ARRAY;
+            }
+
+            if (!empty($options['data'])) {
+                $options['content'] = $options['data'];
+                unset($options['data']);
+            }
+
+            if (isset($options['options'])) {
+                foreach($options['options'] as $key => $value) {
+                    $options[$key] = $value;
+                }
+            }
 
             $key = (isset($options['registry_key']) && !is_numeric($options['registry_key']))
                  ? $options['registry_key']
                  : self::DEFAULT_REGISTRY_KEY;
+            unset($options['registry_key']);
 
             if(Zend_Registry::isRegistered($key)) {
                 $translate = Zend_Registry::get($key);
@@ -89,13 +101,10 @@ class Zend_Application_Resource_Translate extends Zend_Application_Resource_Reso
                                    . 'no instance of Zend_Translate');
                 }
 
-                $translate->addTranslation($options['data'], $locale, $options);
+                $translate->addTranslation($options);
                 $this->_translate = $translate;
             } else {
-                $this->_translate = new Zend_Translate(
-                    $adapter, $options['data'], $locale, $translateOptions
-                );
-
+                $this->_translate = new Zend_Translate($options);
                 Zend_Registry::set($key, $this->_translate);
             }
         }

+ 4 - 0
library/Zend/Translate/Adapter.php

@@ -202,6 +202,10 @@ abstract class Zend_Translate_Adapter {
 
         try {
             if (!($options['content'] instanceof Zend_Translate) && !($options['content'] instanceof Zend_Translate_Adapter)) {
+                if (empty($options['locale'])) {
+                    $options['locale'] = null;
+                }
+
                 $options['locale'] = Zend_Locale::findLocale($options['locale']);
             }
         } catch (Zend_Locale_Exception $e) {