/** * Setup translation instance and feed the translations. */ $transGer = array( 'First name' => 'Vorname', 'Last name' => 'Nachname', 'Submit' => 'Absenden', 'Please enter a value' => 'Bitte einen Wert eingeben', 'Eye color' => 'Augenfarbe', 'brown' => 'braun', 'light' => 'hell', 'dark' => 'dunkel', 'green' => 'grün', 'blue-green' => 'blau-grün', 'grey-green' => 'grau-grün' ); // we will use Zend_Translate for this example with // simple array adapter $translate = new Zend_Translate('array', $transGer, 'de'); $translate->addTranslation(array('' => ''), 'en'); // define current locale to be displayed $translate->setLocale($requestedLang); $form = new Formagic(); $form->setTranslator($translate); $form->addItem('hidden', 'lang', array( 'value' => $requestedLang )) ->addItem('input', 'firstname', array( 'label' => 'First name', 'rules' => 'mandatory' )) ->addItem('input', 'lastname', array( 'label' => 'Last name', 'rules' => 'mandatory' )) ->addItem('select', 'eyecolor', array( 'label' => 'Eye color', 'data' => array( 'brown' => array( 'lb' => 'light', 'db' => 'dark' ), 'green' => array( 'bg' => 'blue-green', 'gg' => 'grey-green' ) ) )) ->addItem('submit', 'send', array( 'label' => 'Submit' )); $form->validate(); echo $form->render();
Result
Description
Any translation engine can be used: Formagic will wrap objects other than Formagic_Translate of choice with it’s own Formagic_Translator class, or you can extend Formagic_Translator as an adapter to your own translation engine.