Translation Example

/**
 * 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.

Leave a Reply

Your email address will not be published. Required fields are marked *


*