Tradução usando gettext (*.mo) no Poedit

Olá pessoal.

Indo direto ao assunto, sempre tive dúvidas quanto a usar o Poedit para traduzir strings, motivo pelo qual usava mais arrays em PHP mesmo. Porém, mais cedo ou mais tarde, necessitamos evoluir e correr atrás do tempo perdido.

Sempre achei o Poedit chato e nunca conseguia fazê-lo funcionar. Após umas fuçadas na net e acertar o link correto, consegui (e entendi :-)) seu funcionamento.

  • File -> New catalog

Na aba Project info você preenche os dados que deseja. Não esqueça de preencher o idioma (que está traduzindo) e o país, além de nome do projeto e e-mail, que é sempre bom preencher.

Feito isso, vem a configuração das próximas 2 abas: Paths e Keywords. Aí que está o segredo que até então eu desconhecia:

  • Paths: Aqui você vai adicionar seu diretório padrão. O Poedit vai vasculhar todos seus arquivos, hierarquicamente, a partir deste diretório. Dica: coloque . (ponto), pois irá salvar seu arquivo .po (Poedit) na pasta que deseja ser a principal, de maneira que ele vai vasculhar a partir daí. Não se esqueça de clicar em New item e colocar o ., senão não vai funcionar.
  • Keywords: Aqui você fala pro Poedit qual a função que ele deve procurar por strings sem tradução. Pra quem usa Zend Framework vai colocar $this->translate [link] e no caso de WordPress vai colocar 2 funções: __ e _e [link]. Isso vai dizer ao Poedit pra procurar em todos os arquivos abaixo do seu diretório padrão essas funções, e vai localizar a *string* que você já colocou nas *views*.

Sua view já deve ter sido preparada para receber as traduções. Vou fazer um post ainda sobre alguns probleminhas que ocorreram comigo e como os solucionei.

Quando clicar em OK o Poedit irá perguntar onde irá salvar o arquivo e qual nome dará a ele. O nome pouco importa aqui neste momento, mas a pasta que irá salvar é de extrema importância, pois a partir dela que o programa irá procurar pelas keywords (as funções de tradução que configuramos) nos arquivos.

Salve seu arquivo no local escolhido. O programa irá analisar todas as strings ainda pendentes de tradução e mostrará pra você as novas, que ainda não foram traduzidas (neste caso todas). Ao confirmar ele irá abrir a tela principal do Poedit já com as strings a serem traduzidas. Aí é mole: clique em uma frase e no canto inferior digite a frase correspondente na língua que quer a tradução.

Feitas as traduções, salve seu arquivo .mo e copie-o na pasta da sua aplicação destinada a este fim (depende do seu framework ou como organizou suas estrutura de pastas). Se precisar alterar alguma coisa (ou adicionar alguma nova string nas views) abra o arquivo .po e clique em Update para analisar nos arquivos se existe alguma nova frase ainda não traduzida. Aí é só repetir os procedimentos acima.

A partir daí é correr pro abraço! Valeu!

Published by

Junior Grossi

senior software engineer & stutterer conference speaker. happy husband & dad. maintains Corcel PHP, elePHPant.me and PHPMG. Engineering Manager @ Paddle

Leave a Reply

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