Jump to content
Fórum Script Brasil
  • 0

Mudança de idiomas


Eryx

Question

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á! =)

Edited by Eryx
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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.

Edited by dinohills
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...