7 use Zend\I18n\Translator\TranslatorAwareInterface;
8 use Zend\I18n\Translator\Translator;
11 class AbstractForm extends Form implements TranslatorAwareInterface
14 private $_translator = null;
15 private $_textDomain = 'default';
16 private $_translator_enabled = false;
19 abstract public function initialize();
24 public function translate($k)
26 if ($this->_translator && $this->_translator_enabled) {
27 return $this->_translator->translate($k, $this->_textDomain);
35 protected function addElement($name, $type='text', $label=null, $attributes=array(), $options=array())
38 $attributes['type' = $type
41 $options['label'] = $label;
43 $params = array('name' => $name);
45 $params['attributes'] = $attributes;
48 $params['options'] = $options;
56 public function setTranslator(Translator $translator = null, $textDomain = null)
58 $this->_translator = $translator;
59 $this->_textDomain = $textDomain;
62 public function getTranslator()
64 return $this->_translator;
67 public function hasTranslator()
69 return $this->_translator !== null;
72 public function setTranslatorEnabled($enabled = true)
74 $this->_translator_enabled = $enabed;
77 public function isTranslatorEnabled()
79 return $this->_translator_enabled;
82 public function setTranslatorTextDomain($textDomain = 'default')
84 $this->_textDomain = $textDomain;
87 public function getTranslatorTextDomain()
89 return $this->_textDomain;
93 protected function setMethod($method='post')
95 $this->setAttribute('method', $method);