Site em 5 idiomas, como organizar?

Enviada por Manoel Jr. 
Manoel Jr.
Site em 5 idiomas, como organizar?
08 de August de 2009 às 10:04PM
Oi Gente!

Preciso de ajuda para organizar a lógica de funcionamento de um site.

Eu estou desenvolvendo um site que terá uns 5 idiomas diferentes, ele é mais um site de apresentação, só vai ter 2 partes que o cliente poderá adicionar mais conteúdos. Deve ser umas 15 páginas estáticas e 2 para artigos e projetos (estas 2 últimas é que eles vão adicionando mais conteúdo conforme desejar).

O cliente pretende far em vários idiomas quase 100% de todo o conteúdo do site. Dois idiomas serão certos sempre, Portugues e Inglês, os outros idiomas poderão ter todoo site ou apenas algumas partes traduzidas. Ele queria que a pessoa pudesse trocar de idioma em qualquer página, tipo comessou aler uma página escrita em italiano e muda para ver ela em francês.

Minha dúvida é a seguinte: -- Visto que o site é 80% estático, o que é melhor eu fazer, para ter um bom controle de tantos idiomas com página tendo a tradução ou não.

1) Criar páginas separadas para cada idioma, e exibir as opções de traduções disponíveis?

2) Montar um esquema padrão, colocar todos os textos num BD e só ir mudando a apresentação para cada tipo de idioma disponível?

Penssando em termos de portabilidade e manutenção de tantos idiomas qual das 2 opções acima é mais aconselhavel?


Muito Obrigado
Manoel Jr.
Carlos Eduardo Gomes Monteiro
Re: Site em 5 idiomas, como organizar?
09 de August de 2009 às 03:45AM
Cara
Na minha opnião
Como você vai ter o seu sistema dividido em dois (Estático / dinâmico)
Eu acho que você pode fazer da seguinte forma...

A parte dinâmica você vai separar por categorias.
Cada categoria é um idioma.

Já a parte estática você pode criar arquivos diferentes
Aí você apenas faz uma inclusão do arquivo com o texto no idioma desejado!!!

E tipo
Você pode criar tipo um arquivo config para idioma.
Pois mesmo na página dinâmica você sempre tem um pequeno texto que vem dentro da programação e não dá pra alterar via Browser...
Algo como

echo 'Veja as fotos abaixo<br />';
while($rows = mysql_fetch_array($resource)){
echo '<img src="' . $rows['img'] . '" />';
}

Ou seja. O 'Veja as fotos abaixo' não seja possível para o usuário alterar este texto se você não usar um config
Algo tipo

configIdi.PT-BR.php
------------------------------------------
<?php
$idiomas['vejaFotos'] = 'Veja as fotos abaixo';
?>

configIdi.EN-US.php
------------------------------------------
<?php
$idiomas['vejaFotos'] = 'See the pics below';
?>

configIdi.ES-MX.php
------------------------------------------
<?php
$idiomas['vejaFotos'] = 'Vea las fotos abajo';
?>

mostraFoto.php
--------------------------------------------
echo $idiomas['vejaFotos'] . '<br />';
while($rows = mysql_fetch_array($resource)){
echo '<img src="' . $rows['img'] . '" />';
}


Este foi um jeito que eu ví para fazer isso né...
Não sei se é o jeito mais simples...
Se alguem tiver uma ideia diferente!!!
Vamos dar ideia aí
Pois eu também estou iniciando um projeto agora e não vai ter mais de um idioma não
Mas vou começa-lo e já vou fazer dessa forma como citei acima, pois no futuro meu cliente vai querer fazer este Switch de idiomas.
Aí eu já quero deixar o sistema preparado e fácil para isto!!!
Abraço a todos!!!
Leandro de Souza Rodeghiero
Re: Site em 5 idiomas, como organizar?
10 de August de 2009 às 06:54PM
Eu também tenho utilizado algo assim........

talvez pra um sistema muito grande pode não servir tão bem mas pra sistemas pequenos e até médios acho que é uma boa solução....




configIdi.PT-BR.php
------------------------------------------
<?php
$idiomas['vejaFotos'] = 'Veja as fotos abaixo';
?>

configIdi.EN-US.php
------------------------------------------
<?php
$idiomas['vejaFotos'] = 'See the pics below';
?>



Até mais
leandro
Carlos Eduardo Gomes Monteiro
Re: Site em 5 idiomas, como organizar?
11 de August de 2009 às 03:16AM
Pois é Leandro
Um bom ponto que você deixou aí.
Além do trabalhão que vai dar quando o sistema for muito grande
Ainda tem um problema
Talvez, dependendo do tamanho do sistema, só o config já pode dar problemas com memória, ou desempenho do sistema e etc...

Mas esse é o jeito mais fácil.
E também mais prático até mesmo para instalar um novo idioma.
wellington reis
Re: Site em 5 idiomas, como organizar?
11 de August de 2009 às 03:18PM
nao sei se o que eu vou lhe informar sera tao util fiz um sistema assim so que vai chegar um ponto que vai ficar inviavel manter multi idioma

aconselho vc a usar o google translate como muitos sites e blogs usam colocam as bandeiras de cada pais com o link exato para a tradução do google seu cliente cadastra tudo em portugues e o google faz o resto

ou otra opção é criar um banco com todas as palavras e fazer a alteração.
Carlos Eduardo Gomes Monteiro
Re: Site em 5 idiomas, como organizar?
11 de August de 2009 às 03:26PM
Aí Wellington
Só explica aí pra nós por que ficou inviavel...
wellington reis
Re: Site em 5 idiomas, como organizar?
13 de August de 2009 às 11:20AM
porque cara chegou a um ponto que a "tradução" não ficava ao pe da letra ou seja. dependendo do jeito que ele digitar em portugues (concordancia, verbo, plural) dava uma dor de cabeça do caramba ae eu tinha q fazer case's ou if's array procurando por palavras pra tradução ficar bacana pois ningm vai querer um site com erros de ortografia e demais erros de linguisticas so isso.
Carlos Eduardo Gomes Monteiro
Re: Site em 5 idiomas, como organizar?
13 de August de 2009 às 12:16PM
Ah sim
Entendi.
Mas você sugeriu usar o Google.
Você não acha que usando o Google para traduzir também não haveria muitos erros de concordância e etc...
Afinal o Google não é perfeito para traduções não.
Na verdade, eu creio que traduzindo pelo Google seja muito menos confiavel em questões de exatidão na tradução.
A diferença é que simplesmente usando o Google o trabalho será muito menor...
Marcos Regis
Re: Site em 5 idiomas, como organizar?
13 de August de 2009 às 05:10PM
Nenhum site profissional que se preze usa um tradutor eltrônico para criar sites em idiomas diferentes.

Eis o que eu uso.

Criei uma tabela no banco de dados contendo o seguinte

+ id int(11) autoincrement
chave char(3)
default
pt
en
es
fr

O campo id é autoexplicativo
O campo chave é o campo que faço as buscas
O campo default contém a expressão no idioma em que o projeto foi escrito
Os outros campos sao as traduções

uso essa função
function my_i18n($texto,$idioma_saida="pt",$output=false){
if(trim($texto)!=""){
$chave = md5($texto);
// pesquiso no banco de dados e recupero apenas o campo indicado por $idioma_saida
$sql ="Select $idioma_saisa FROM tabela WHERE chave='$chave'";
if(!$res = mysql_query($sql)){
// Sem resultados
$sql = "INSERT INTO tabela (chave,default,$idioma_saida) VALUES ('$chave','$texto','$texto')";
mysql_query($sql);
}else{
$texto = mysql_result($res,0,$idioma_saida);
}
}
if($output) echo $texto;
return $texto;
}


Nos textos que quiser tradução vc usa esta função
wellington reis
Re: Site em 5 idiomas, como organizar?
14 de August de 2009 às 12:16AM
Carlos Eduardo Gomes Monteiro
Nao vai ficar 100% perfeito mais agiliza


Marcos Regis
Marco eu tinha feito exatamente isso so que com as palavras em ingles cadastradas no BD e caso fosse encontrada no texto a palavra no banco em portugues ele procurava a equivalente no idioma escolhido o ruim é que em frases o negocio complica muito ainda mais nos verbos.

Coisa de loco eu fiz via sessao e "cookie" pra ir armazenando os mais lidos pra ir gerando um banco de dados com frases mais usadas mais cara xegou a um ponto que era melhor cadastrar nos idiomas escolhidos que usar a tradução
sites assim sao mais praticos com pouca alteração sites mais dinamicos sao fogo imagina um site que recebe umas 10 materias dia facil ne agora se o cara colocar comentarios etc etc e tal ai complica fora que tem nego que abrevia muito

Sites institucionais sao bons pra fazer isso devido o conteudo ser quase statico poucos textos.
Marcos Regis
Re: Site em 5 idiomas, como organizar?
14 de August de 2009 às 12:38AM
Wellington, o que você mencionou é uma coisa totalmente diferente.

Conteúdo postado por terceiros e comentários realmente não se traduz. Nesse cado um tradutor eletrônico faz sentido.

Conteúdo que tem o intuito de informar ou de vender, esse sim precisa ser traduzido.
Por exemplo, no meu blog eu traduzo todo o conteúdo para ingles mas os comentários ficam sempre no idioma que foi escrito pois não é de minha responsabilidade o conteúdo, apenas a moderação.

Mas no caso em que foi citado ele fará o site em 5 idiomas e nesse caso é importante ter o conteúdo feito por um humano e não por um tradutor eletrônico e ter um gerenciador que permita cadastrar o conteúdo no idioma em que quiser e isto é melhor feito com banco de dados da forma que mencionei.
wellington reis
Re: Site em 5 idiomas, como organizar?
14 de August de 2009 às 12:13PM
vc nao entendeu. disse que tem a vantagem de se traduzir ate os comentarios dos visitantes tmbm mais o correto é usar o bd cadastras as palavra ou se dominar os idiomas do site voce traduzir e postar mais no caso aq é pra cadastrar em portugues e o sistema traduzir de acordo com o idioma solicitado.

como todos nos dissemos e concordamos BD é a soluçao mais o trablho vai ser intenso ainda mais fazendo uma tabela com frases mais usuais como falei pra ficar mais pratico e a tradução um pouco melhor.
Marcos Regis
Re: Site em 5 idiomas, como organizar?
14 de August de 2009 às 12:52PM
Entendi sim.
Mas o que você está mencionando não é um site em outros idiomas e sim um conforto de tradução online que nada tem a ver com a origem.
Não dá pra usar isso em um site institucional apenas para textos sem compromisso como posts de blogs ou comentários.
São coisas muito diferentes.
Site traduzido não é a mesma coisa que conteúdo em vários idiomas (vide wikipedia)
wellington reis
Re: Site em 5 idiomas, como organizar?
14 de August de 2009 às 02:32PM
eu to falando o q ele quer fazer.

fazer um site em varios idiomas com tradção nele proprio oou seja com banco de idiomas para tradução altomatica citei o google pensando em facilitar como alguns sites fazem mais o correto é fazer seu proprio bd e desenrolar para a tradução ser local coisa que ja fiz uma vez e nao faço mais muito trabalho e exaustivo.

pq faz ae testa as condições verifica um monte de coisa é fogo...
Marcos Regis
Re: Site em 5 idiomas, como organizar?
15 de August de 2009 às 02:19PM
O QUE ELE quer fazer está no título da pergunta.
UM SITE EM 5 IDIOMAS.

Nada de TRADUÇÃO do site para outros idiomas.

Para fazer o que ele quer eu indiquei um método e dei minha opinião sobre usar um tradutor online e ainda expliquei a diferença quando se trata de SISTEMAS PROFISSIONAIS.

Para outros métodos basta procurar por i18n (internationalization) na internet.

Outra coisa. Não tem que fazer um monte de testes, um monte de condições. É uma coisa até simples. Se ele quer fazer o conteúdo em outros idiomas, ou ele já possui o conteúdo ou possui quem o faça conteúdo. Se eu for vender meus sistema para outros países, seria muito interessante que o site esteja no máximo de línguas possíveis (vide TODOS os bons softwares disponíveis) e não é usando um tradutor online que se faz isso. Isso é para amadores e amadores não VENDEM.
O idioma do usuário que acessa o site geralmente está definido nos headers enviados pelo navegador, basta verificar se existe conteudo naquele idioma e exibi-lo. Também é importante ter meios do usuario escolher o idioma via definição de cookies (aqueles links de bandeirinhas).
wellington reis
Re: Site em 5 idiomas, como organizar?
15 de August de 2009 às 11:03PM
Marcos Regis Escreveu:
-------------------------------------------------------
> O QUE ELE quer fazer está no título da
> pergunta.
> UM SITE EM 5 IDIOMAS.
>
> Nada de TRADUÇÃO do site para outros idiomas.
>
> Para fazer o que ele quer eu indiquei um método e
> dei minha opinião sobre usar um tradutor online e
> ainda expliquei a diferença quando se trata de
> SISTEMAS PROFISSIONAIS.
>
> Para outros métodos basta procurar por i18n
> (internationalization) na internet.
>
> Outra coisa. Não tem que fazer um monte de
> testes, um monte de condições. É uma coisa até
> simples. Se ele quer fazer o conteúdo em outros
> idiomas, ou ele já possui o conteúdo ou possui
> quem o faça conteúdo. Se eu for vender meus
> sistema para outros países, seria muito
> interessante que o site esteja no máximo de
> línguas possíveis (vide TODOS os bons softwares
> disponíveis) e não é usando um tradutor online
> que se faz isso. Isso é para amadores e amadores
> não VENDEM.
> O idioma do usuário que acessa o site geralmente
> está definido nos headers enviados pelo
> navegador, basta verificar se existe conteudo
> naquele idioma e exibi-lo. Também é importante
> ter meios do usuario escolher o idioma via
> definição de cookies (aqueles links de
> bandeirinhas).


<?php
$idiomas['vejaFotos'] = 'Veja as fotos abaixo';
?>

configIdi.EN-US.php
------------------------------------------
<?php
$idiomas['vejaFotos'] = 'See the pics below';
?>
Marcos Regis
Re: Site em 5 idiomas, como organizar?
17 de August de 2009 às 01:01PM
?????


Quanto ao método indicado, eu desaconselho este uso.
Carregar todos os textos na memória a cada carda da página? Desnecessário.
O melhor a fazer é separar por conteúdo HTML estático, arquivo de properties ou Banco de Dados.
Usar textos em variáveis é disperdício de memória.
wellington reis
Re: Site em 5 idiomas, como organizar?
17 de August de 2009 às 05:00PM
2) Montar um esquema padrão, colocar todos os textos num BD e só ir mudando a apresentação para cada tipo de idioma disponível?


Eu estou certo MARCOS...
Marcos Regis
Re: Site em 5 idiomas, como organizar?
17 de August de 2009 às 05:21PM
Sim. este é um dos modos e eu já inclui um exemplo prático de como fazer uso disso de forma muito eficiente.
É o mesmo modo usado pela maioria dos frameworks.

Vantagens:
>>> Você faz todo o site no idioma padrão e o próprio sistema se encarrega de criar as entradas no banco de dados.
>>> Uma mesma entrada pode ser usada em diversos pontos e dessa forma economiza-se recursos (rótulos de formulários, menus, etc)
>>> Fica muito fácil criar um frontend para fazer a manutenção
>>> Alterar o conteúdo não está vinculado ao deploy da aplicação

Segue alguns links interessantes

http://book.cakephp.org/view/793/Initializing-the-i18n-Database-Tables
http://www.symfony-project.org/jobeet/1_2/Propel/en/19
http://framework.zend.com/manual/en/zend.form.i18n.html
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.