t0ze Posted November 30, 2012 Report Share Posted November 30, 2012 Bom dia, Gostaria de saber da vossa experiencia para a seguinte situação: O objectivo é implementar um sistema multi language e para "chamar" a linguagem actual, estou a utilizar uma variavel de sessao, que vai ler a um ARRAY. A minha duvida agora é a mudança de lingua. Assim, o que estou a fazer é; <script> function change_to_en(lang){ window.location.replace("http://google.com"); } function change_to_pt(){ //document.write("<?php $_SESSION['user_lang'] = 'pt';?>"); //document.reload("http://google.com"); window.location.replace("<?php echo $pageURL; ?>"); } </script> <div> <?php $pageURL = ""; $pageURL = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; ?> Bem-vindo, <?php echo $_SESSION['name']." | "; echo "<a href='logout.php'>Sair</a><br>"; ?> <a href='#' onclick='change_to_pt()'><img style="width:16px; height:12px;" src="./files/img/pt-pt.png"></a> <a href='#' onclick="change_to_en('<?php echo $pageURL."?lang=en"; ?>')"><img style="width:16px; height:12px;" src="./files/img/en.png"></a> </div> O Objectivo era que o utilizador ao clicar no mudar para EN ficasse na mesma página, mas esta refrescasse, de modo a eu poder ir à variavel _GET[lang] e dar o valor EN à variavel de sessao. O meu problema é na função function change_to_en(lang) que não redireciona para lado nenhum. Obrigado Link to comment Share on other sites More sharing options...
brunoais Posted November 30, 2012 Report Share Posted November 30, 2012 1 pergunta. Porque é que estás a usar js para esse trabalho? "[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31 Life is a genetically transmitted disease, induced by sex, with death rate of 100%. Link to comment Share on other sites More sharing options...
t0ze Posted November 30, 2012 Author Report Share Posted November 30, 2012 Pois. Só m estava a complicar, vi num exemplo na internet. <div> <?php $pageURL = ""; $pageURL = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; ?> Bem-vindo, <?php echo $_SESSION['name']." | "; echo "<a href='logout.php'>Sair</a><br>"; ?> <a href='<?php echo $pageURL.'?lang=pt'; ?>' ><img style="width:16px; height:12px;" src="./files/img/pt-pt.png"></a> <a href='<?php echo $pageURL.'〈=en'; ?>'><img style="width:16px; height:12px;" src="./files/img/en.png"></a> </div> Agora aqui a minha dificuldade é em saber quando é que no parametro (lang) a adicionar a string do link (pageurl) é o primeiro ou outro (usar ?lang ou 〈) Se eu tiver numa pagina /registry_edit.php?id_registry=1364 tem que adicionar o (〈) Se eu tiver numa pagina ns/registry_list.php tem q adicionar o (?lang) há maneira de controlar isto? Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted November 30, 2012 Report Share Posted November 30, 2012 (edited) $pageURL = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; if (count($_GET) == 0) $pageURL.="?"; // a partir de agora será sempre $pageURL . "〈"; Edited November 30, 2012 by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
yoda Posted November 30, 2012 Report Share Posted November 30, 2012 Usa cookies. before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
t0ze Posted November 30, 2012 Author Report Share Posted November 30, 2012 Em vez da $_SESSION[user_lang] ? Link to comment Share on other sites More sharing options...
t0ze Posted November 30, 2012 Author Report Share Posted November 30, 2012 Obrigado HappyHippyHippo, segui a tua dica e funcionou Há maneira de evitar isto, é que de cada vez que o utilizador carrega na bandeira, vai acrescentar ao link. /registry_list.php?lang=en〈=en〈=en〈=en $pageURL = ""; $pageURL = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; if (count($_GET) == 0) $pageURL.="?"; // a partir de agora será sempre $pageURL . "〈"; Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted November 30, 2012 Report Share Posted November 30, 2012 $pageURL = ""; $pageURL = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; if (count($_GET) == 0) $pageURL.="?"; // a partir de agora será sempre if (!array_key_exists("lang", $_GET)) $pageURL . "〈"; 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
yoda Posted November 30, 2012 Report Share Posted November 30, 2012 Em vez da $_SESSION[user_lang] ? Podes usar ambas, mas os cookies são mais fáceis de usar pelo javascript. before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
t0ze Posted December 1, 2012 Author Report Share Posted December 1, 2012 Ficou resolvido assim: <div class="logInfo"> <?php $pageURL = ""; $prefix = ""; if (count($_GET) == 0) { $prefix = "?"; }else{ $prefix = "&"; } $pageURL = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; $pageURL = preg_replace('/(.*)(?|&)' . 'lang' . '=[^&]+?(&)(.*)/i', '$1$2$4', $pageURL . '&'); $pageURL = substr($pageURL, 0, -1); $pageURL = $pageURL.$prefix; ?> Bem-vindo, <?php echo $_SESSION['name']." | "; echo "<a href='logout.php'>Sair</a><br>"; ?> <a href='<?php echo $pageURL."lang=pt"; ?>' ><img style="width:16px; height:12px;" src="./files/img/pt-pt.png"></a> <a href='<?php echo $pageURL."lang=en"; ?>'><img style="width:16px; height:12px;" src="./files/img/en.png"></a> </div> referencia: http://www.addedbytes.com/blog/code/php-querystring-functions/ Creio que o titulo do post acabou por ficar desadequado, faria mais sentido se fosse "Remover variável da query string", deixo ao vosso critério. Obrigado pela ajuda. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now