Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gustalevin

Mudança de idioma em site PHP de acordo com link

Recommended Posts

Possuo um site em PHP, que assumi de outro desenvolvedor, em três idiomas. Tenho inclusive uma função changeLang(lang) que muda perfeitamente o idioma de português pra inglês ou espanhol. Contudo, o link da minha página sempre fica o mesmo, mesmo quando eu mudo o idioma:

http://www.minhapagina.com/phase01?lang=pt-br

Queria ter a opção de poder mudar o idioma pra inglês (eng) ou espanhol (esp) quando eu mudo no link também. Tentei algo assim no início da página phase01.php, mas não deu certo:

if(isset($_GET['lang'])){
  if($_GET['lang'] == 'eng'){
    echo "<script>window.addEventListener('DOMContentLoaded', function () { changeLang(1); }, false);</script>";
  }
  elseif($_GET['lang'] == 'esp'){
    echo "<script>window.addEventListener('DOMContentLoaded', function () { changeLang(2); }, false);</script>";
  }
  else {
    echo "<script>window.addEventListener('DOMContentLoaded', function () { changeLang(0); }, false);</script>";
  }
}

O que eu poderia fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

As páginas já estão traduzidas?

 

Sim, já possui toda a configuração de idiomas nos labels da página. O problema mesmo tá só na questão dessa parte do link.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O idioma da pagina é alterado usando Javascript ou PHP?

 

É javascript. Segue o código da função:

function changeLang(idLang) {
	$("#comboLang").css("display", "none");
	$("#langAtiva").html($("#lang" + idLang).val());
	var lang = '';
	if(idLang==0){
		lang = 'pt-br';
	}else if(idLang==1){
		lang = 'eng';
	}else if(idLang==2){
		lang = 'esp';
	}
	
	$("#lang").val(lang);
//alert(location.href);
	$.ajax({
		url : 'usuario/mudaLingua',
		async : false,
		dataType : 'json',
		type : 'POST',
		data : {
			lang : lang
		},
		success : function(data) {
			location.reload();
		}
	});
}

Já essa função mudalingua, que está no URL, é definida num arquivo de controller:

public function mudaLingua(){
		session_start("usuario");
		$_SESSION['usuario']['lang'] = $_REQUEST['lang'];
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente colocar isso no começo do seu código:

if (array_key_exists('lang', $_GET))
    $_SESSION['usuario']['lang'] = $_GET['lang'];

O objetivo é que a linguagem seja forçada a ser alterada todas as vezes que o lang apareça na URL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente colocar isso no começo do seu código:

if (array_key_exists('lang', $_GET))
    $_SESSION['usuario']['lang'] = $_GET['lang'];

O objetivo é que a linguagem seja forçada a ser alterada todas as vezes que o lang apareça na URL

Oi, aqui é o gustalevin, autor do tópico (não consegui logar com minha outra conta, que era vinculada à do Twitter. Aí tive de criar uma nova.

 

Seguinte: a tua ideia funcionou bem. Mas como o que eu tinha originalmente (as funções changeLang e mudaLingua) era vinculado a um botão que fica no cabeçalho da página, que faz a troca do idioma, o botão deixa de funcionar e só muda a língua com a mudança no link.

 

Qual seria o jeito de funcionar as duas coisas junto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.