Jump to content

Selecionar texto portugues (default)


PF2G

Recommended Posts

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.