Zend Framework - Mensagens de erro em Portugues no ZendForm
Zend Framework é um conjunto de classes criado pela Zend para facilitar a criação de sites PHP oferendo um formato pré determinado, por exemplo você faz formulários onde as mensagens de validação já estão prontas. O problema é que isso ás vezes engessa o código e o torna inflexível para quem não conhece o formato direito. Por isso a idéia desse e dos próximos artigos é oferecer soluções simples para quem está começando agora a trabalhar com Zend Framework.
A idéia é ter um Array com a variável que os componentes do ZendForm usam internamente e a mensagem em português, depois criar um componente de ZendTranslate e informá-lo no init da sua classe que estende o ZendForm. Parece fácil, nao. Vamos aos arquivos:
Primeiro precisamos criar um arquivo com o array em portugues, eu criei o meu dentro de application/i18n/pt-br.php . Dentro dele vai o conteúdo abaixo:
Existem outras mensagens mas infelizmente eu não achei nenhuma documentação. Se alguém achar por favor avise.
Agora falta configurar os outros arquivos:
E pronto!
A solução eu encontrei no blog do Adler Meldrado (Obrigada ;-)) e em um fórum que usava um tal de de.php (eu acho que é alemão..), eu só adaptei o local dos Registry e do Array de idiomas.
A idéia é ter um Array com a variável que os componentes do ZendForm usam internamente e a mensagem em português, depois criar um componente de ZendTranslate e informá-lo no init da sua classe que estende o ZendForm. Parece fácil, nao. Vamos aos arquivos:
Primeiro precisamos criar um arquivo com o array em portugues, eu criei o meu dentro de application/i18n/pt-br.php . Dentro dele vai o conteúdo abaixo:
//application/i18n/pt-br.php $portugues = array(); $portugues['isEmpty']= 'Este campo não pode ser vazio'; // Email $portugues['emailAddressInvalid'] = 'não é um email válido no formato nome@servidor'; //Captcha $portugues['missingValue'] = 'Valor incorreto. Digite novamente.'; $portugues['badCaptcha'] = 'Valor incorreto. Digite novamente.'; $portugues['missingID'] = 'Está faltando valores. Digite novamente.';
Existem outras mensagens mas infelizmente eu não achei nenhuma documentação. Se alguém achar por favor avise.
Agora falta configurar os outros arquivos:
bootstrap.php (aquele arquivo inicial..):
//Registrando o Zend Translate
include_once APPLICATION_PATH . '/i18n/pt-br.php';
$translate = new Zend_Translate('array', $portugues, 'pt_BR');
Zend_Registry::set('translate', $translate );
Agora coloque o código abaixo no init do seu formulário:
$translate = Zend_Registry::get('translate');
$this->setTranslator($translate);
E pronto!
A solução eu encontrei no blog do Adler Meldrado (Obrigada ;-)) e em um fórum que usava um tal de de.php (eu acho que é alemão..), eu só adaptei o local dos Registry e do Array de idiomas.
Mto bom estava procurando com isso será mto util
22/11/2011 8:39am
(~3 meses atrás)
bem interessante =D
Procurei muito por isso. Se não me engano no http://www.devmedia.com.br/ tinha algo a respeito também mas entendi melhor aqui.
Obrigada =D
Procurei muito por isso. Se não me engano no http://www.devmedia.com.br/ tinha algo a respeito também mas entendi melhor aqui.
Obrigada =D
13/10/2011 1:11pm
(~4 meses atrás)
Parabéns pelo artigo Camila, achei muito bem escrito. :-)
Com relação as demais chaves do array para tradução, tem uma contribuição do usuário Matias Rezende no "iMasters Code" que possui acredito que todas as chaves, dá uma olhada:
http://code.imasters.com.br/index.php?/topic/25-traducao-das-mensagens-de-validacao/
Um abraço!
Com relação as demais chaves do array para tradução, tem uma contribuição do usuário Matias Rezende no "iMasters Code" que possui acredito que todas as chaves, dá uma olhada:
http://code.imasters.com.br/index.php?/topic/25-traducao-das-mensagens-de-validacao/
Um abraço!
31/03/2011 2:05am
(~10 meses atrás)


disse: