Skip to content
This repository was archived by the owner on Jan 30, 2020. It is now read-only.

Commit 729d739

Browse files
committed
Merge pull request #104 from RalfEggert/feature-translate-errors
Added translation to FormElementErrors view helper
2 parents 1dbf69b + e84fe52 commit 729d739

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

src/View/Helper/FormElementErrors.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ public function render(ElementInterface $element, array $attributes = [])
7979
$escapeHtml = $this->getEscapeHtmlHelper();
8080
$messagesToPrint = [];
8181
array_walk_recursive($messages, function ($item) use (&$messagesToPrint, $escapeHtml) {
82+
if (null !== ($translator = $this->getTranslator())) {
83+
$item = $translator->translate($item, $this->getTranslatorTextDomain());
84+
}
85+
8286
$messagesToPrint[] = $escapeHtml($item);
8387
});
8488

test/View/Helper/FormElementErrorsTest.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,32 @@ public function testRendersErrorMessagesUsingUnorderedListByDefault()
4848
// @codingStandardsIgnoreEnd
4949
}
5050

51+
public function testRendersErrorMessagesUsingUnorderedListTranslated()
52+
{
53+
$mockTranslator = $this->getMock('Zend\I18n\Translator\Translator');
54+
$mockTranslator->expects($this->at(0))
55+
->method('translate')
56+
->will($this->returnValue('Translated first error message'));
57+
$mockTranslator->expects($this->at(1))
58+
->method('translate')
59+
->will($this->returnValue('Translated second error message'));
60+
$mockTranslator->expects($this->at(2))
61+
->method('translate')
62+
->will($this->returnValue('Translated third error message'));
63+
64+
$this->helper->setTranslator($mockTranslator);
65+
$this->assertTrue($this->helper->hasTranslator());
66+
67+
$this->helper->setTranslatorTextDomain('default');
68+
69+
$messages = $this->getMessageList();
70+
$element = new Element('foo');
71+
$element->setMessages($messages);
72+
73+
$markup = $this->helper->render($element);
74+
$this->assertRegexp('#<ul>\s*<li>Translated first error message</li>\s*<li>Translated second error message</li>\s*<li>Translated third error message</li>\s*</ul>#s', $markup);
75+
}
76+
5177
public function testCanSpecifyAttributesForOpeningTag()
5278
{
5379
$messages = $this->getMessageList();

0 commit comments

Comments
 (0)