+5

Zend Framework - Mensagens de erro em Portugues no ZendForm

criado por Camila Balboni em 03/02/2011 9:22am
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:

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

Comentários:

Mostrando 1 - 6 de 6 comentários
AndersonSilva disse:
Obrigado Pelo Artigo, estou aprendendo este conteudo na faculdade, e quero saber melhor sobre issu, e estou postando todos os conteudos que aprendo no site http://www.baixafree.com.br
20/01/2013 4:47am (~3 anos atrás)

Dangda disse:
Obrigado por tomar o tempo para discutir isso, eu sinto fortemente sobre ele e adoro aprender mais sobre este tema. Se possível, como você ganhar experiência <a href="http://lucyyou.com/kinh-mat" rel="dofollow">kinh mat</a>, você se importaria de atualizar seu blog com mais informações? É extremamente útil para mim ... obrigado
17/01/2013 8:29pm (~3 anos atrás)

Talaha disse:
Nós da TI, temos esse importante papel de facilitar a comunicação e a informação, no mundo das tecnologias.
Lembrando que, no Brasil, idiomas estrangeiros ainda é um grande obstáculo. O que não deveria ser, enfim... apesar de bizarro, é cultural.
http://vienne.co/bop-nu
17/01/2013 3:50am (~3 anos atrás)

Legal a utilidade do que foi proposto pelo artigo, para usuário final.

Nós da TI, temos esse importante papel de facilitar a comunicação e a informação, no mundo das tecnologias.

Lembrando que, no Brasil, idiomas estrangeiros ainda é um grande obstáculo. O que não deveria ser, enfim... apesar de bizarro, é cultural.
07/04/2012 3:14pm (~4 anos atrás)

Luiz Henrique disse:
Mto bom estava procurando com isso será mto util
22/11/2011 8:39am (~5 anos 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!

31/03/2011 2:05am (~5 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)