PF2G Posted June 4, 2012 at 11:18 AM Report Share #460237 Posted June 4, 2012 at 11:18 AM Bom dia, Eu tenho aqui uma página onde vou buscar outra paginas onde faço a respetiva tradução: <?php //array $lang = array('pt', 'en'); //iniciar sessao -> array session_start(); //verificar var lang no url -> pagina.php?lang=pt if(isset($_GET['lang']) && in_array($_GET['lang'], $lang)) { $_SESSION['lang'] = $_GET['lang']; } else { $_SESSION['lang'] = 'pt'; } //incluir a linguagem if(isset($_SESSION['lang']) && in_array($_SESSION['lang'], $lang)) { require_once 'lang_'.$_SESSION['lang'].'.php'; } ?> Depois criei uma tabela com a informação do conteudo (titulo, descricao e a linguagem) agora quero ver que linguagem é que está selecionada e aparecer o texto da respetiva lingua, mas tenho um problema pq o default é o unico que não funciona, aparece-me a página em branco: <?php ob_start(); include 'db_connect.php'; if (isset($_GET['lang'])) { $sel_lang="SELECT * FROM content_lang WHERE lang='".$_GET['lang']."'"; $language=mysql_query($sel_lang, $connect); $row_lang=mysql_fetch_assoc($language); $sel_text="SELECT * FROM content_lang WHERE titulo='Family Office' AND lang='".$row_lang['lang']."'"; $text=mysql_query($sel_text, $connect); $row_text=mysql_fetch_assoc($text); ?> <span class="fontchange"> <?php echo $row_text['titulo'];?> </span> <?php echo $row_text['descricao']; ?> <?php $content=ob_get_contents(); ob_clean(); $title="Familly Office"; $image="familyoffice2.png"; include 'include/master.php'; } ?> Link to comment Share on other sites More sharing options...
brunoais Posted June 4, 2012 at 11:32 AM Report Share #460240 Posted June 4, 2012 at 11:32 AM (edited) Se fosse a ti não punha a página por predefinição em português. Eu perguntava ao browser qual é a linguagem, das que tens disponível, que o utilizador quer. Bem... o browser indica sempre isso, de qq modo. Toma, uma oferta minha: /** * Get the language that should be used according to ACCEPT-LANGUAGE HTTP header * Note: This is not working fully. It does not detect the langs that the user tells that he definitly does not want (q=0) * * @since 2011 * @author ? * @author brunoais * @return string */ function getLanguageFromHeader(){ $langs = array(); if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { // break up string into pieces (languages and q factors) preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $lang_parse); if (count($lang_parse[1])) { // create a list like "en" => 0.8 $langs = array_combine($lang_parse[1], $lang_parse[4]); // set default to 1 for any without q factor foreach ($langs as $lang => $val) { if ($val === '') $langs[$lang] = 1; } // sort list based on value arsort($langs, SORT_NUMERIC); } foreach($langs AS $lang => $val){ $myLangs = explode ('-', $lang.'- '); if(file_exists('./lang/lang.'. $myLangs[0] .'.php')){ return $myLangs[0]; }else if(file_exists('./lang/lang.'. $myLangs[1] .'.php')){ return $myLangs[1]; } } } // None given is working... Use the backup one wich works almost always! return defined(LANG)? LANG : 'en'; } Dentro do foreach: "foreach($langs AS $lang => $val){" tens que alterar o código para se adaptar ao teu sistema. Isto é um código que está disponível na net que eu encontrei e modifiquei um pouco para ser um pouco mais eficiente e para se adaptar ao programa que estava a desenvolver na altura, um projeto que já morreu, infelizmente. Ainda é da era do php 5.2, por isso, n sei se poderia ser ainda mais otimizado. Edited June 4, 2012 at 11:34 AM by brunoais "[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...
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