Site multilinguas

candycane

Power Member
Boa noite :)

Como é que se faz de forma dinâmica um site com 2 línguas, por ex...

Eu queria fazer a tradução, e não ter que fazer 2 paginas uma em português e outra em inglês...

Há forma de fazer isso com o php?
 
exemplo simples:
pagina index.php
PHP:
<?php

if (funcao_verificar_localizacao == PT)
$require = '/lang_pt/index.inc.php';
       else
$require = '/lang_en/index.inc.php';

require $require;

?>
 
O hostmake já disse tudo. Agora também tenho uma pergunta. Quanto à função "verificar_localizacao"... O servidor faz isso? Verificar os países de onde vêm os acessos, não é?

De qualquer forma, sempre vais ter outra página em inglês para cada uma de português que tiveres, que estarão guardadas nas tais pastas de língua que o hostmake referiu, por exemplo. (acho eu :P)
 
É uma função imaginária, o geo_ip é muito bom, deixo-vos aqui um link para um artigo sobre geo_ip

http://antoniocampos.no-ip.com/2007/11/08/php-geoip/


MCAlexandre, mas se o site estiver bem feito, tantos estes includes ou usando base de dados, podem servir apenas para modificar a parte da língua, dai os includes no template original, conforme a língua.
Eu conheço sites como o GEO IP, só que pensei que o servidor o fizesse porque no Awstats e nas minhas outras estatísticas aparecem os países de onde vinham as visitas. :)

Pois, se tu fizeres um site onde apenas o conteúdo não está nos includes, podes mudar a língua facilmente. Também tens de lidar com a hipótese de o host dele não aceitar includes, mas isso acho que é pouco comum.
 
Sugestão:
Criar uma funcao que aceite uma string do genero:
Código:
echo getLangStr ("(PT)Esta cadeia de caracteres está em português (EN)This string is in english")
O que a funçao "getLangStr" faria seria, através do (PT), (EN) ou outro identificador da cultura, remover o que nao interessa e retornar apenas o conteudo correspondente a uma cultura. A cultura que o utilizador escolher poderia ser gravada numa cookie ou numa variavel de sessao.

espero ter-me feito explicar ;)
 
Última edição:
Também me parece boa solução, Armadillo. :)

E dá para fazer como aqueles style-switchers CSS? Só que em vez de "switchar " o style, "switchava" a língua? Sem sequer recarregar a página, é possível? :P
 
Terias que guardar a pagina inteira e com div's, esconder a língua que não estás a mostrar, muito má politica.

Podes é usar Ajax, e mudar os includes todos sem saires da página.
 
Eu irei ter 2 imagens, uma com a bandeira portuguesa e a outra a bandeira inglesa... SE o site tiver em portugues, e eu clicar na bandeira inglesa como é que eu mudo tudo?

Tava a pensar por em base de dados o conteudo em pt e outro em ingles, e ao clicar na bandeira punha a linguagem qeu se escolheu, mas n sei como fazer isso :(
 
Just my 2 c...

Crio um ficheiro que é sempre incluído (languagevars.php), por exemplo.
Aí, coloco lógica para verificar o $_SESSION['ulang'], que é uma variável definida pelo utilizador (PT;ES;EN;etc);
em função disso, crio um switch em que vou atribuir ao array $L as variáveis localizadas, por ex:
PHP:
switch ($_SESSION['ulang']){
case "PT":
$L['lermais'] = "Ler mais";
break;
case "EN":
$L['lermais'] = "Read more";
break;
}

Depois, defino $L como global, para poder utilizar mesmo em todo o lado...
por fim, seja onde for é só chamar $GLOBALS['L']['lermais'] et voilá... localização feita.
 
Back
Topo