Olá!
O post de hoje é relacionado a como traduzir as mensagens vindas do Validator para o português ou qualquer outro idioma. Como você já deve saber, as mensagens padrões de validação de formulários vindas do ZendFramework 2 são em inglês. Como fazer para que elas já venham em português?
Felizmente o ZF2 já conta com as mensagens de validação, aviso ou erro traduzidas para o português e mais uma dezena de idiomas. Há diversas formas de traduzir mensagens de erro. Você pode pegar uma mensagem específica e traduzir somente ela ou definir para seu projeto que toda e qualquer mensagem vinda da classe Validator seja exibida por padrão no idioma desejado, no caso o português. Como fazer isso?
Basta você adicionar as seguintes linhas abaixo na função/método onBootstrap() de seu arquivo Module.php. Mas atenção! Uma coisa que penei muitas horas para aprender e que minha colega programadora Vanessa França me ajudou foi que o código deve estar no método onBootstrap do arquivo Module.php que se encontra no módulo principal de sua aplicação. Esse geralmente é o módulo Application. Se ele estiver em outro módulo que não seja o principal o código abaixo não irá funcionar.
Supondo que estamos em Application>Module.php, definimos:
//Adicione essas duas linhas
getApplication ()->getEventManager ();
$moduleRouteListener = new ModuleRouteListener ();
$moduleRouteListener->attach ( $eventManager );
//Esse é o código para a tradução
//Pega o serviço translator definido no arquivo module.config.php (aliases)
$translator = $e->getApplication ()->getServiceManager ()->get ( 'translator' );
//Define o local onde se encontra o arquivo de tradução de mensagens
$translator->addTranslationFile ( 'phpArray', './vendor/zendframework/zendframework/resources/languages/pt_BR/Zend_Validate.php' );
//Define o local (você também pode definir diretamente no método acima
$translator->setLocale ( 'pt_BR' );
//Define a tradução padrão do Validator
AbstractValidator::setDefaultTranslator ( new Translator ( $translator ) );
}
...
?>
Bem, após ter configurado dessa forma todas as suas validações deverão ser traduzidas automaticamente para o português. Abaixo encontram-se algumas referências em inglês e um tutorial em vídeo (português) produzido pelo canal “Curso Zend Framework” que poderão te ajudar. Qualquer dúvida, estou a disposição. Até a próxima!
Referências
Vídeo Tutorial ZendFramework2 – Translator (https://www.youtube.com/watch?v=BocxE_g4eLs)
Zend2 – Set Default (http://pastebin.com/pwZB05mW)
ZF2 – Documentação Oficial – Validation Messages Translator (http://framework.zend.com/manual/current/en/modules/zend.validator.messages.html)