t0ze Posted November 30, 2012 at 01:52 PM Report #485231 Posted November 30, 2012 at 01:52 PM 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
brunoais Posted November 30, 2012 at 02:55 PM Report #485233 Posted November 30, 2012 at 02:55 PM 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%.
t0ze Posted November 30, 2012 at 03:19 PM Author Report #485235 Posted November 30, 2012 at 03:19 PM 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?
HappyHippyHippo Posted November 30, 2012 at 03:23 PM Report #485237 Posted November 30, 2012 at 03:23 PM (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 at 03:24 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
yoda Posted November 30, 2012 at 03:28 PM Report #485239 Posted November 30, 2012 at 03:28 PM Usa cookies. before you post, what have you tried? - http://filipematias.info sense, purpose, direction
t0ze Posted November 30, 2012 at 03:35 PM Author Report #485241 Posted November 30, 2012 at 03:35 PM Em vez da $_SESSION[user_lang] ?
t0ze Posted November 30, 2012 at 03:54 PM Author Report #485249 Posted November 30, 2012 at 03:54 PM 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 . "〈";
HappyHippyHippo Posted November 30, 2012 at 04:13 PM Report #485253 Posted November 30, 2012 at 04:13 PM $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
yoda Posted November 30, 2012 at 07:15 PM Report #485270 Posted November 30, 2012 at 07:15 PM 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
t0ze Posted December 1, 2012 at 10:50 PM Author Report #485369 Posted December 1, 2012 at 10:50 PM 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.
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