• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Zeux

[PHP] GetText

7 mensagens neste tópico

Enquanto estava a desenvolver o meu último projecto, tive a necessidade de traduzir a página para várias línguas, e após investigar um pouco descobri o gettext :D

Procurei aqui no fórum e não encontrei nada sobre isso, por isso, ou eu sou muito noob e só eu é que não sabia ou então pode ser uma dica boa.

Então aqui vai um pequeno manual de como usar o gettext para trauzir páginas:

1. Na página PHP sempre que quiserem colocar uma frase que irá estar traduzida em várias linguas metam:

<?php echo gettext("texto para traduzir"); ?>

2. Após a página ter tudo escrito desta forma, usar o programa poEdit para criar as legendas propriamente ditas:

- Ficheiro - Novo Catálogo

- Depois é só colocar a informação que quiserem relativa à tradução

- Na tab "Pastas" coloquem como pasta base a pasta que contem as páginas php a serem traduzidas e carreguem no botão que é uma pasta com uma estrela (Nova Entrada) e depois basta colocar apenas um ponto (.) na textfield que aparece

- Carreguem em OK e o programa irá percorrer procurar todas as palavras que tiverem com o gettext nos ficheiros da pasta que indicaram

- Nota: o texto que escrevem dentro da tag "gettext()" não pode ter acentos nem nada desse género, têm de usar o respectivo HTML encoding

- Após isto deve aparecer uma lista com todas as palavras/frases encontradas, carreguem em cima do texto a traduzir e no quadrado inferior esquerdo coloquem a tradução respectiva à lingua que escolheram.

- No fim de terem traduzidos todos os textos vão a "Ficheiro - Guardar como" e guardem com o nome messages.po dentro da pasta da lingua correspondente, seguindo esta estrutura:

               - Pasta com a página

                        - Locales

                                   - pt_PT

                                   - en_EN

                                   - ....

3. Agora para mudar de língua têm de codificar o botão para executar este código, onde a variável $locale irá conter o nome da língua que terá de ser igual ao nome da pasta como referi atrás, ou seja, "pt_PT", "en_EN", etc...:

putenv("LANGUAGE=$locale");
putenv("LANG=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("messages", "./locale");
textdomain("messages");

4. Por último basta reiniciarem o Apache e testarem (cada vez que mudam o ficheiro .po têm de reiniciar o apache para mudar as alterações) :D

Não sei se esta maneira é a mais fácil ou não, mas foi assim que eu consegui por a funcionar :D

Se tiver aqui alguma coisa de mal, agradecia aos entendidos no assunto que dissessem como corrigir :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já conhecia os tais ficheiros .po mas nunca tinha visto alguém a aplicá-los à web, só conhecia em aplicações de desktop.

Bom trabalho! :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Muito bom este tutorial :D eu não conhecia isto e agora vai dar-me muito jeito para uma página que estou a desenvolver para uma empresa portuguesa de informatica e contabilidade e eles querem o site em português, espanhol e inglês.

Keep with the good work

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No Joomla! tens uma cena chamada Joomfish, já usei para o portal de uma empresa, muito mas muito bom mesmo.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas eu já fiz duas propostas de design e já enviei para a empresa agora estou à espera de resposta :D eu safo-me com a tradução :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol, se ainda não começaste a desenvolver mesmo o site (se já desenvolveste a estrutura melhor) podes considerar a opção, fazes um template para o Joomla, como eu fiz, totalmente personalizado.

Fala comigo no messenger se quiseres ver.

Cumps :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já sabia isso... existe um monte de artigos na net que falam sobre isso...  Mas é mesmo muito bom.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora