Traduzindo o core de sua aplicação CakePHP
Muitos problemas que o desenvolvedor enfrenta durante o projeto são facilmente solucionados se a mensagem de erro for interpretada corretamente. Quem freqüenta listas de discussão sabe como muitas vezes a solução é compreender o problema.
Pensando em quem não fala inglês e utiliza o CakePHP em seus projetos, fiz a tradução de todas as mensagens internacionalizadas do framework, passando mensagens como as do console, página inicial padrão, erros, entre outras, para o português.
A instalação das traduções é muito simples. Faça o download do arquivo que contém as mensagens em português neste link, e descompacte-o no diretório app/locale.
$ tar -xzvf pt_br.tar.gz -C <CAMINHO ATÉ SUA APLICAÇÃO>/app/locale
Após a extração, edite o arquivo core.php localizado no diretório config da sua aplicação, e insira a seguinte linha:
<?php Configure::write('Config.language', 'pt-br'); ?>
E pronto, agora seu Cake fala português!
Convido a todos que utilizarem esta tradução a enviarem críticas e sugestões nos comentários. Obrigado!
Update:
O cake_ptbr agora é um plugin e pode ser encontrado no GitHub.
O Juan Basso fez ótimas melhorias no projeto como um todo e agora ele conta com novas funcionalidades além da tradução, como:
- inflections;
- um Model com os estados brasileiros;
- validação de CEP, CNPJ, CPF e telefone;
- Behavior para acessar recursos dos Correios;
- Behavior para ajuste de datas;
- Helper de formatação de datas e
- Helper de estados.
Comentários (29)
-
001
Josenivaldo Benito
em 25/09/2008 17:08:56Olá,
O correto não seria “pt_BR” ao invés de “pt” no Config.Language ?
Eu acho que pt é pt de portugual…
Abraço e obrigado
-
002
Gabriel Gilini
em 25/09/2008 17:34:18Olá, Benito!
O padrão de idiomas na nomenclatura dos diretórios do locale, segue a definição ISO 639-2, que não contém uma sigla para o português brasileiro, apenas ‘por’ para português em geral.
Portanto, se o Config.language for modificado para pt_BR, o cake não reconhecerá o idioma.
Grande abraço
-
003
Juan Basso
em 25/09/2008 22:31:10Gabriel, conforme o arquivo l10n.php do core, ele espera o idioma ‘pt-br’ (esse é o valor no Configure::write), que usará o diretório ‘pt_br’ (com underline e não hifen) em primeiro lugar. Caso não exista, tentará o diretório ‘por’, conforme a ISO.
Abraços e parabens pela iniciativa. -
004
Cesar Fuentes
em 26/09/2008 11:03:44Valeu cara!
-
005
Gabriel Gilini
em 26/09/2008 19:34:29Tem razão Juan, li apenas no manual do Cake sobre a internacionalização, e lá citam que todos os idiomas seguem aquele padrão ISO.
Já corrigi no post, muito obrigado!
-
006
carlos
em 24/10/2008 07:59:44amigos, as dicas funcionaram mas os acentos ficam todos errados e ao tentar edicar o arquivo .po para corrigir os acentos recebo a mensagem:
some characters cannot be mapped using CP1252.
Alguem poderia me dar alguma ideia de como resolver isso?
obrigado
Carlos
-
007
joaojose
em 29/10/2008 11:39:36Olá Carlos,
Você esta utilizando qual editor de textos?
É importante lembrar que utilizamos o enconding UTF-8, que é o padrão do CakePHP.
Abraços
-
008
Juan Basso
em 06/11/2008 19:17:02Gabriel, baixei hoje o pacote e vi que você colocou o nome do arquivo como default.po. O CakePHP importa os arquivos default.po e core.po. O core.po refere-se a tradução do núcleo, justamente como você fez. E o default.po para as strings internacionalizáveis da aplicação. Você não acha melhor trocar o nome do arquivo para não conflitar com uma tradução da aplicação?
-
009
Gabriel Gilini
em 10/11/2008 14:05:25Realmente, Juan, falha minha! Consertei no repositório. Valeu pela dica ;)
-
010
Caio Vitor
em 20/11/2008 08:33:01Esse: [gist='12879'] é a mesma coisa que: Configure::write(‘gist’, 12879) ?
-
011
joaojose
em 20/11/2008 09:37:37Olá Caio,
Mil desculpas, fizemos uma atualização no gerenciador de códigos e acabamos tendo este problema.
Agora esta tudo resolvido.
-
012
Jose
em 27/11/2008 10:04:43Parabéns pela tradução cara…
Mas também estou com problemas em relação aos acentos… No browser ao invés de acentos aparecem “quadrados”… alguém já teve esse problema??
|To quebrando a cabeça a nada!
-
013
Gabriel Gilini
em 27/11/2008 10:16:58José, você está tendo este problema com todas as palavras acentuadas ou apenas aquelas que estão sendo traduzidas pelo arquivo .po?
Verifique se os seus arquivos estão todos salvos em UTF-8, que é o encoding padrão do CakePHP.
Abraços
-
014
joaquim
em 17/12/2008 16:25:42Muito bom mas ainda tenho uma duvida como faço para ter o console traduzido mais especificamente o “cake bake “
-
015
Gabriel Gilini
em 17/12/2008 18:35:18Joaquim, só seu console está sem tradução? Eu testei aqui e ele também está traduzido, e me lembro bem de ter escrito as mensagens!
Você não está selecionando um diretório de app diferente do que contem a tradução no “locale”?
-
016
Paulo Marcelo
em 30/12/2008 22:48:25Não traduziu o Novo, no meu sistema por exemplo quando coloquei scaffold no meu modelo livro ficou abaixo da tabela de listagem de registros(grid) New Livro.
-
017
JoaoJose
em 03/01/2009 08:11:12Olá Paulo,
O problema está na geração do Scaffold do CakePHP, tem algumas frases que ainda não estão internacionalizadas. Já mandei pro TRAC um ticket solicitando a mudança. https://trac.cakephp.org/ticket/5814
Abraços.
-
018
Paulo Marcelo
em 07/01/2009 16:36:33Entrei no link que você mandou e pelo que entendi esta sua alteração solicitada só está prevista para versão 1.3.x.x é isso mesmo ou entendi errado?
-
019
João José Pedirni
em 08/01/2009 09:18:33Então Paulo,
Eu não entendo muito bem esse pessoal do CakePHP, sinceramente ainda não sou muito bom em ajudar em projetos OpenSource. Não sei se é necessário criar um teste para isso ou um PATH, é meio estranho. O pior de tudo é que a alteração é simples.
Se você quiser, você pode copiar o arquivo /cake/libs/view/scaffolds/index.ctp, fazer as modificações e colocar na sua pasta /app/views/scaffolds
Grande abraço
-
020
Paulo Marcelo
em 27/01/2009 12:27:19Gabriel, acredito que se você traduzisse New como adicionar ou incluir ficaria melhor pois atenderia a ambos os generos(masculino e feminino) pois se para o Model Cliente fica bom Novo Cliente, porém para o Model Tarefa fica ruim Novo Tarefa.
-
021
Gabriel Gilini
em 27/01/2009 13:29:01Verdade, Paulo, valeu pelo comentário! Esse tipo de coisa passa batida.
Vou arrumar lá no repositório. -
022
Paulo Marcelo
em 27/01/2009 15:20:20#: /cake/libs/error.php:233
#: /cake/libs/view/errors/missing_view.ctp:27
msgid “Missing View”
msgstr “Scaffold não tem conexão com o banco de dados”Nesta parte não seria melhor traduzir como Faltando View ou View não encontrada
-
023
Gabriel Gilini
em 27/01/2009 18:39:35Realmente, Paulo, provavelmente algum engano meu com copiar/colar, hehe.
Valeu pelo feedback! -
024
Juan Basso
em 13/02/2009 20:44:20Gabriel,
Outra sugestão: o termo ‘Delete’ está sendo traduzido para ‘Deletar’. Não seria melhor utilizar ‘Excluir’? Pois ‘Deletar’ ainda não pertence a lingua portuguesa, mesmo sendo usual (principalmente entre os ligados na área de TI). E ‘Excluir’ também é melhor comercialmente.
Abraços,
Juan Basso
-
025
Juan Basso
em 16/02/2009 13:12:58Gabriel,
Achei outra:
Tentativa de acessar método privado na classe
Erro: A tabela produtos para o model Produto não foi encontrada.
Advertência: Se você quiser customizar esta mensagem de erro, crie app/views/errors/missing_table.ctpNão seria tentativa de método privado, mas de faltando tabela.
-
026
Diorges Rocha
em 28/08/2009 10:01:31Opa, muito obrigado pela tradução pena que quando mudo o charset para ISO-8859-1 os acentos ficam errados, então como eu vi que muita gente ta tendo esse mesmo problema, eu editei o arquivo e codifiquei os acentos para o padrão ISO, e agora os acentos estão todos corretos… segue o link para download se alguém quiser: http://emsite.us/cakephp/pt-br.rar
Obrigado!
-
027
Rodrigo
em 03/09/2009 09:55:43Encontrei esse projeto aqui que possui a tradução das strings do core do CakePHP para o português além de incluir uma série de outras coisas úteis como validação de CEP e CPF, formatação de datas, entre outros.
-
028
Gabriel Gilini
em 03/09/2009 12:30:13Falha nossa, Rodrigo. O Juan fez um fork do projeto e implementou um montão de coisa por cima, e eu esqueci de atualizar o post com as novas instruções de downloads.
-
029
Francisco
em 28/09/2009 16:35:31Olá pessoal, preciso de uma ajuda num site que usa o cake php , claro que pago o serviço, não acho onde edita o footer.php e alguns links no menu do site…




