Pārlūkot izejas kodu

[ZF-7937] Zend_View_Helper_Translate:

- added new feature to allow options also on non-translation

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@18387 44c647ce-9c0f-0410-b52a-842ac1e357ba
thomas 16 gadi atpakaļ
vecāks
revīzija
679968eb58

+ 7 - 8
library/Zend/View/Helper/Translate.php

@@ -72,13 +72,9 @@ class Zend_View_Helper_Translate extends Zend_View_Helper_Abstract
         }
 
         $translate = $this->getTranslator();
-        if ($translate === null) {
-            return $messageid;
-        }
+        $options   = func_get_args();
 
-        $options = func_get_args();
         array_shift($options);
-
         $count  = count($options);
         $locale = null;
         if ($count > 0) {
@@ -91,12 +87,15 @@ class Zend_View_Helper_Translate extends Zend_View_Helper_Abstract
             $options = $options[0];
         }
 
-        $message = $translate->translate($messageid, $locale);
+        if ($translate !== null) {
+            $messageid = $translate->translate($messageid, $locale);
+        }
+
         if (count($options) === 0) {
-            return $message;
+            return $messageid;
         }
 
-        return vsprintf($message, $options);
+        return vsprintf($messageid, $options);
     }
 
     /**

+ 9 - 0
tests/Zend/View/Helper/TranslateTest.php

@@ -255,6 +255,15 @@ class Zend_View_Helper_TranslateTest extends PHPUnit_Framework_TestCase
         $this->assertEquals("four%", $this->helper->translate("vier%ig"));
         $this->assertEquals("zwei 100", $this->helper->translate("two %1\$s", "100"));
     }
+
+    /**
+     * ZF-7937
+     */
+    public function testTranslationWithoutTranslator()
+    {
+        $result = $this->helper->translate("test %1\$s", "100");
+        $this->assertEquals('test 100', $result);
+    }
 }
 
 // Call Zend_View_Helper_TranslateTest::main() if this source file is executed directly.