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

Merge r25256 to 1.12 release branch

git-svn-id: http://framework.zend.com/svn/framework/standard/branches/release-1.12@25257 44c647ce-9c0f-0410-b52a-842ac1e357ba
frosch пре 13 година
родитељ
комит
7b5c17e4c2

+ 5 - 0
library/Zend/Form/Decorator/FormErrors.php

@@ -457,6 +457,11 @@ class Zend_Form_Decorator_FormErrors extends Zend_Form_Decorator_Abstract
         $label = $element->getLabel();
         if (empty($label)) {
             $label = $element->getName();
+
+            // Translate element name
+            if (null !== ($translator = $element->getTranslator())) {
+                $label = $translator->translate($label);
+            }
         }
 
         if ($this->getEscape()) {

+ 33 - 0
tests/Zend/Form/Decorator/FormErrorsTest.php

@@ -28,6 +28,7 @@ if (!defined("PHPUnit_MAIN_METHOD")) {
 require_once 'Zend/Form/Decorator/FormErrors.php';
 require_once 'Zend/Form.php';
 require_once 'Zend/Form/SubForm.php';
+require_once 'Zend/Translate.php';
 require_once 'Zend/View.php';
 
 /**
@@ -362,6 +363,38 @@ class Zend_Form_Decorator_FormErrorsTest extends PHPUnit_Framework_TestCase
         $this->assertContains('<li><b><strong>Sub Bar: </strong>', $html);
     }
 
+    /**
+     * @group ZF-8713
+     */
+    public function testElementNameIsTranslated()
+    {
+        // Translator
+        $translator = new Zend_Translate(
+            'array',
+            array(
+                 'Master Foo: ' => 'transleted label',
+                 'bar'          => 'translated name',
+            )
+        );
+
+        // Form
+        $this->setupForm();
+        $this->form->setDecorators(array($this->decorator));
+        $this->form->foo->setTranslator($translator);
+        $this->form->bar->setTranslator($translator);
+
+        // Test
+        $html = $this->form->render();
+        $this->assertContains(
+            '<li><b>transleted label</b><ul class="errors">',
+            $html
+        );
+        $this->assertContains(
+            '<li><b>translated name</b><ul class="errors">',
+            $html
+        );
+    }
+
     public function markupOptionMethodsProvider()
     {
         return array(