Ir para conteúdo
Fórum Script Brasil
  • 0

Mudança de idiomas


Eryx

Pergunta

Oi, gente!

Como todo bom leecher, aqui estou eu querendo ajuda sem nunca ter contribuído para o fórum. Mas como tenho esse trabalho mais importante pela frente, quero aprender o máximo possível e me integrar ao fórum para poder deixá-lo sempre melhor.

Eu tenho uma pequena dúvida, frescura minha, sobre a mudança de idiomas...

Meu site é uma coisa toscamente simples. Fiz todo o texto e botões em imagens. Tudo funciona à base de CSS e HTML. Mas ficou bonito, ficou rápido, e acho que no fim das contas é isso que deve importar (né?)

Enfim, o endereço caso queiram ver melhor é http://dehast.com

Mas isso não é importante, não vim aqui pra ficar passando meu site, e sim pra pedir ajuda na questão de idiomas.

Como toda a informação do site é a partir de imagens feitas no Photoshop, toda a tradução foi feita por lá e salva em .png

Sendo assim, todas as minhas páginas têm suas versões, ou seja: contato.php e contato_en.php

Quando o sujeito clica na bandeirinha do inglês, ele vai parar em index_en.php, onde o texto e botões são _en.png e os links são todos _en.php.

Então, basicamente, foi isso que fiz. Coloquei duas bandeiras que alternam entre cinza e colorido dependendo da língua onde o cidadão está, e a clicável sempre vai levar esse nosso querido cidadão de volta à página principal do site, na outra língua.

O que eu gostaria de poder fazer é que quando esse visitante está na página software.php e clique na bandeira em inglês, ele pule direto pra software_en.php ao invés de voltar ao index_en.php

O código, nesse momento, está assim na página em PT:

<div style="left: 576px; top: 50px; position: absolute; border: 0px solid #000000;">
                <img src="ptu.png" title="O site já está em português." />
                <a href="index_en.php" target="_self"><img title="Navigate in English" src="en.png" /></a>
            </div>
E em EN...
<div style="left: 576px; top: 50px; position: absolute; border: 0px solid #000000;">
                <a href="index.php" target="_self"><img src="pt.png" title="Navegue em português" /></a>
                <img src="enu.png" title="The page is already in English." />
            </div>
Sei que, para ter essa mudança dinâmica que eu quero, deveria estar da seguinte forma:
<div style="left: 576px; top: 50px; position: absolute; border: 0px solid #000000;">
                <img src="ptu.png" title="O site já está em português." />
                <a href="%s_en.php" target="_self"><img title="Navigate in English" src="en.png" /></a>
            </div>
<div style="left: 576px; top: 50px; position: absolute; border: 0px solid #000000;">
                <a href="%s.php" target="_self"><img src="pt.png" title="Navegue em português" /></a>
                <img src="enu.png" title="The page is already in English." />
            </div>

O que gostaria de saber/aprender é como modificar o meu CSS ou PHP ou o que for necessário para que outra parte do meu site, do meu código, compreenda que em %s deve-se aparecer o nome da página em que meu visitante se encontra.

Eu imagino que precisaria dar uma classe aos meus <a>, como class="pag_atual_en" e class="pag_atual_pt", e dali fazer a mágica, mas falta mágica em mim.

Podem me ajudar, gente?

Obrigado desde já! =)

Editado por Eryx
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Boa tarde, cara montei uma função pra poder gerar os links pra você, já que você trabalha com um padrão de links.

A função vai fazer o seguinte ela vai pegar a URL /precos.php e transformala em precos_en.php, e quando você estiver na página em inglês ela vai pegar /precos_en.php e transformar em /precos.php.

Para você usar a função e preciso acrescentar 2 coisas.

No início de cada página você vai precisar acrescentar esse código:

<?php
include "funcao.php";
?>
E em cada link que você usa nas bandeirinhas você simplesmente monta o link usando:
href="<?php echo idioma("pt");  ?>"   Nesse caso para montar o link para pt_BR
href="<?php echo idioma("en");  ?>"  Nesse caso para montar o link para Inglês
Agora o arquivo funcao.php :
<?php
function idioma($idioma){
    $link = $_SERVER[REQUEST_URI];
    if ($idioma == "en"){        
        if(preg_match("/_/", $link) == 0){
            $link = substr($link,1,-4)."_en.php";
            return $link;
        }        
    }
    if ($idioma == "pt"){        
        if(preg_match("/_en/", $link)){
            $link = substr(str_replace("_en","",$link),1);
            return $link;            
        }        
    }
}
?>

Lembre-se você so precisa usar a função nas bandeiras, o resto dos links ficam todos como estão.

Dúvidas poste no tópico mesmo.

Abraço.

Editado por dinohills
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...