1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Site multilinguas

Discussão em 'Web Development' iniciada por candycane, 25 de Junho de 2008. (Respostas: 12; Visualizações: 881)

  1. candycane

    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?
     
  2. hostmake

    hostmake Power Member

    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;

    ?>
     
  3. Desumano

    Desumano Power Member

    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)
     
  4. hostmake

    hostmake Power Member

    É 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.
     
  5. Desumano

    Desumano Power Member

    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.
     
  6. Armadillo

    Armadillo Folding Member

    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: 26 de Junho de 2008
  7. Desumano

    Desumano Power Member

    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
     
  8. hostmake

    hostmake Power Member

    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.
     
  9. candycane

    candycane Power Member

    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 :(
     
  10. hostmake

    hostmake Power Member

    guardas a língua numa $_SESSION['lingua']

    PHP:
    echo "<img src='blablablabla/imagens_".$_SESSION['lingua']."/logo.jpg'>";
     
  11. JPBImpe

    JPBImpe What is folding?

    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.
     
  12. anjo2

    anjo2 Power Member

    Pelo que percebi isso é pago certo?
     
  13. hostmake

    hostmake Power Member

    Existe uma versão lite.
     

Partilhar esta Página