Zend Framework

Labels not translated

Details

  • Type: Bug Bug
  • Status: Resolved Resolved
  • Priority: Major Major
  • Resolution: Cannot Reproduce
  • Affects Version/s: 1.8.1
  • Fix Version/s: None
  • Component/s: Zend_Form
  • Labels:
    None

Description

the getLabel() method of Zend_Form_Element does not perform translation as described in the doc (http://framework.zend.com/manual/en/zend.form.i18n.html#zend.form.i18n.standard)

Activity

Hide
Danne Lundqvist added a comment -

It seems that there is no translator returned in the label decorator for file elements. The method called is Zend_Form_Element_File::getTranslator() which in the end is calling Zend_File_Transfer_Adapter_Abstract::getTranslator()

The code in Zend_File_Transfer_Adapter_Abstract does not return the default translator if there is not a specific one assigned. Replacing the code in Zend_File_Transfer_Adapter_Abstract::getTranslator() with the below (from Zend_Form_Element::getTranslator()) fixes the problem and make sure the default translators is returned.

if ($this->translatorIsDisabled()) { return null; }

if (null === $this->_translator) { require_once 'Zend/Form.php'; return Zend_Form::getDefaultTranslator(); }
return $this->_translator;

Show
Danne Lundqvist added a comment - It seems that there is no translator returned in the label decorator for file elements. The method called is Zend_Form_Element_File::getTranslator() which in the end is calling Zend_File_Transfer_Adapter_Abstract::getTranslator() The code in Zend_File_Transfer_Adapter_Abstract does not return the default translator if there is not a specific one assigned. Replacing the code in Zend_File_Transfer_Adapter_Abstract::getTranslator() with the below (from Zend_Form_Element::getTranslator()) fixes the problem and make sure the default translators is returned. if ($this->translatorIsDisabled()) { return null; } if (null === $this->_translator) { require_once 'Zend/Form.php'; return Zend_Form::getDefaultTranslator(); } return $this->_translator;
Hide
Marco Kaiser added a comment -

added patch for this issue

Show
Marco Kaiser added a comment - added patch for this issue
Hide
Mike Willbanks added a comment -

I don't believe that adding the form translator into the Zend_File_Transfer_Adapter_Abstract is the correct fix for this. It would seem that it would be a better fix to put this into the Zend_Form_Element_File area and setting it from there rather than adding additional complexity and coupling the File_Transfer_Adapter to the form.

Show
Mike Willbanks added a comment - I don't believe that adding the form translator into the Zend_File_Transfer_Adapter_Abstract is the correct fix for this. It would seem that it would be a better fix to put this into the Zend_Form_Element_File area and setting it from there rather than adding additional complexity and coupling the File_Transfer_Adapter to the form.
Hide
Mike Willbanks added a comment -

I cannot reproduce this bug in the trunk:

require_once 'Zend/Translate.php';
        $translate = new Zend_Translate('array', array('foo' => 'bar'), 'en');

        Zend_Form::setDefaultTranslator($translate);
        $form = new Zend_Form();
        $element = new Zend_Form_Element_File('file');
        $element->setLabel('foo');
        $form->addElement($element);
        $form->setView(new Zend_View());

        $html = (string) $form;
Show
Mike Willbanks added a comment - I cannot reproduce this bug in the trunk:
require_once 'Zend/Translate.php';
        $translate = new Zend_Translate('array', array('foo' => 'bar'), 'en');

        Zend_Form::setDefaultTranslator($translate);
        $form = new Zend_Form();
        $element = new Zend_Form_Element_File('file');
        $element->setLabel('foo');
        $form->addElement($element);
        $form->setView(new Zend_View());

        $html = (string) $form;
Hide
Matthew Weier O'Phinney added a comment -

Confirmed Mike's diagnosis – on trunk, this is working fine. Closing; re-open if you can provide reproduce code off of current trunk that shows labels not being translated.

Show
Matthew Weier O'Phinney added a comment - Confirmed Mike's diagnosis – on trunk, this is working fine. Closing; re-open if you can provide reproduce code off of current trunk that shows labels not being translated.

People

Vote (4)
Watch (2)

Dates

  • Created:
    Updated:
    Resolved: