Преглед изворни кода

[ZF-6724] Zend_View_Helper_Translate:

- fixed option counting


git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@15667 44c647ce-9c0f-0410-b52a-842ac1e357ba
thomas пре 16 година
родитељ
комит
4dc7c032fc
2 измењених фајлова са 19 додато и 5 уклоњено
  1. 1 1
      library/Zend/View/Helper/Translate.php
  2. 18 4
      tests/Zend/View/Helper/TranslateTest.php

+ 1 - 1
library/Zend/View/Helper/Translate.php

@@ -92,7 +92,7 @@ class Zend_View_Helper_Translate extends Zend_View_Helper_Abstract
         }
         }
 
 
         $message = $translate->translate($messageid, $locale);
         $message = $translate->translate($messageid, $locale);
-        if ($count === 0) {
+        if (count($options) === 0) {
             return $message;
             return $message;
         }
         }
 
 

+ 18 - 4
tests/Zend/View/Helper/TranslateTest.php

@@ -23,7 +23,7 @@ require_once 'Zend/Translate/Adapter/Array.php';
  * @package    Zend_View
  * @package    Zend_View
  * @subpackage UnitTests
  * @subpackage UnitTests
  */
  */
-class Zend_View_Helper_TranslateTest extends PHPUnit_Framework_TestCase 
+class Zend_View_Helper_TranslateTest extends PHPUnit_Framework_TestCase
 {
 {
     /**
     /**
      * @var Zend_View_Helper_Translate
      * @var Zend_View_Helper_Translate
@@ -195,12 +195,12 @@ class Zend_View_Helper_TranslateTest extends PHPUnit_Framework_TestCase
 
 
     public function testLocalTranslationObjectIsPreferredOverRegistry()
     public function testLocalTranslationObjectIsPreferredOverRegistry()
     {
     {
-        $transReg = new Zend_Translate('array', array());
+        $transReg = new Zend_Translate('array', array('one' => 'eins'));
         Zend_Registry::set('Zend_Translate', $transReg);
         Zend_Registry::set('Zend_Translate', $transReg);
 
 
         $this->assertSame($transReg->getAdapter(), $this->helper->getTranslator());
         $this->assertSame($transReg->getAdapter(), $this->helper->getTranslator());
 
 
-        $transLoc = new Zend_Translate('array', array());
+        $transLoc = new Zend_Translate('array', array('one' => 'uno'));
         $this->helper->setTranslator($transLoc);
         $this->helper->setTranslator($transLoc);
         $this->assertSame($transLoc->getAdapter(), $this->helper->getTranslator());
         $this->assertSame($transLoc->getAdapter(), $this->helper->getTranslator());
         $this->assertNotSame($transLoc->getAdapter(), $transReg->getAdapter());
         $this->assertNotSame($transLoc->getAdapter(), $transReg->getAdapter());
@@ -211,11 +211,25 @@ class Zend_View_Helper_TranslateTest extends PHPUnit_Framework_TestCase
         $helper = $this->helper->translate();
         $helper = $this->helper->translate();
         $this->assertSame($this->helper, $helper);
         $this->assertSame($this->helper, $helper);
 
 
-        $transLoc = new Zend_Translate('array', array());
+        $transLoc = new Zend_Translate('array', array('one' => 'eins'));
         $this->helper->setTranslator($transLoc);
         $this->helper->setTranslator($transLoc);
         $helper = $this->helper->translate();
         $helper = $this->helper->translate();
         $this->assertSame($this->helper, $helper);
         $this->assertSame($this->helper, $helper);
     }
     }
+
+    /**
+     * ZF-6724
+     */
+    public function testTranslationWithPercent()
+    {
+        $trans = new Zend_Translate('array', array('one' => 'eins', "two %1\$s" => "zwei %1\$s",
+            "three %1\$s %2\$s" => "drei %1\$s %2\$s", 'vier%ig' => 'four%'), 'de');
+        $trans->setLocale('de');
+
+        $this->helper->setTranslator($trans);
+        $this->assertEquals("four%", $this->helper->translate("vier%ig"));
+        $this->assertEquals("zwei 100", $this->helper->translate("two %1\$s", "100"));
+    }
 }
 }
 
 
 // Call Zend_View_Helper_TranslateTest::main() if this source file is executed directly.
 // Call Zend_View_Helper_TranslateTest::main() if this source file is executed directly.