sentite io faccio parecchio uso di funzioni per tenere il tutto ordinato
ma all'intenro delle funzioni sto array mica si vede
come se può fare
ho provato a fare glocale l'array... ma credo sia una pazzia e poi nn m'è riuscito![]()
sentite io faccio parecchio uso di funzioni per tenere il tutto ordinato
ma all'intenro delle funzioni sto array mica si vede
come se può fare
ho provato a fare glocale l'array... ma credo sia una pazzia e poi nn m'è riuscito![]()
ok son riuscita rendere l'array globale e ora funziona tutto ...
ho trovato una pillola sulle varibiali globali... è il caso che la legga bene![]()
domanda stupida forse, ma credo corretta
Se guardo però cosa restituisce php mi rendo conto che quello che esce èCodice PHP:is_file("lang/".$_SERVER['HTTP_ACCEPT_LANGUAGE'].".php"
Ora pensando a quel povero file .php come lo dovrei chiamare?codice:[HTTP_ACCEPT_LANGUAGE] => it-it,it;q=0.8,en-us;q=0.5,en;q=0.3
Tipo così?
codice:Warning: file(lang/it-it,it;q=0.8,en-us;q=0.5,en;q=0.3/lang_main.inc.php): failed to open stream:
No, lo devi chiamare qualcosa tipo "it" o "en" e via dicendo. Sarà uno script php appositamente creato a restituire it, on, fr o altro a seconda della lingua contenuta in accept_language. Come interpretare la stringa ora non te lo so dire però se dai uno sguardo al manuale sicuramente ci sarà scritto come gestirla!
eCommerceRS.NET - Commerciante, vendi on-line!
Il mio nick è mircov e non mirco!!!
io utilizzo questo metodo:
Codice PHP:$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
MiServe di Santino Bivacqua
PHP/Ruby/Node.js Developer
www.miserve.com
Mitica, così prendi solo le prime 2 lettere...Originariamente inviato da sanbiv
io utilizzo questo metodo:
Codice PHP:$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
Utilizzerò così lo script, non ci pensavo proprio di usare substr..che scemo
Ecco la mia versione
Che ne pensate? Dovrebbe essere corretto e semplice gestito così no?Codice PHP:// IMPOSTAZIONE DELLA LINGUA
if (isset($_SESSION['userlang']))
{
$language = $_SESSION['userlang'];
}
elseif(isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && is_file("lang/" . substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2) . "/lang_main.inc.php"))
{
$language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
}
else
{
$language = $row['language'];
}
include("./lang/" . $language . "/lang_main.inc.php");
Ciao ragazzi
ho provato il codice... ma il mio problema è che rimane settata sempre la lingua di default i cookie sono attivi.... dove sbaglio???
il codice li sto provando sul sito (naturalmente tutto in costruzione) www.viaggisud.it/index.php
ma date una dritta? è da ieri che ci sbatto senza fare un mm in avanti
il codice che ho usato è:
file config.php
<? session_start();
//operazione che legge tutte le variabili di GET e le pone in una variabile sistemata:
foreach ($_GET AS $key=>$value) {
if($key != "intl") {
$stringa_get .= "&";
$stringa_get .= $key."=".$value;
}
}
//Lingua di default
$defaultlang = "it";
//Cartella dei file di lingua (relativa in base alla posizione del file di config)
$langpath = "lang";
//Se esiste la variabile di sessione 'lingua'
if (isset($_SESSION['lingua'])) {
//Se esiste il parametro WEB inviato tramite GET 'intl'
if(isset($_GET['intl'])) {
//Effettuiamo qualche aggiusto per eventuali hack...
$_GET['lang'] = str_replace("/","", trim(strtolower($_GET['intl'])));
//Se esiste il file di lingua corrispondente al parametro GET richiesto
if (is_file($langpath."/".$_GET['intl'].".php")) {
//Imposta la sessione 'lingua' con la lingua scelta
$_SESSION['lingua'] = $_GET['intl'];
//Altrimenti
} else {
//Imposta la sessione 'lingua' in quella di default
$_SESSION['lingua'] = $defaultlang;
}
}
//Altrimenti
} else {
//Imposta la sessione 'lingua' in quella di default
$_SESSION['lingua'] = $defaultlang;
}
//Finalmente includiamo il file di lingua giusto
include($langpath."/".$_SESSION['lingua'].".php");
echo $langpath;
echo $langpath."/".$_SESSION['lingua'].".php";
?>
mentre il file index.php
<?
include("config.php");?>
Inglese
Italiano
<? echo $_SESSION['lingua']; ?>
<? echo $trad['titolosito']; ?>
e poi ho creato sotto la cartella /lang
i due file it.php e en.php (che sono uguali a parte la traduzione)
<?
setlocale(LC_ALL, "en_EN");
//Iniziamo quindi con i contenuti in italiano del sito
$trad['titolosito'] = "Radio Web Stereo - Your";
$trad['titoloblocco1'] = "La tua radio";
?>
ciao ragazzi ... ho risolto esattamente 1 minuto dopo avere scritto il forum... (notare che era da ieri che non risolvevo nulla)...
il problema era solo che nei file it.php e en.php lasciavo l'intestazione della pagina html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>....
bè.... grazie comunque per la veramente utile "pillola"
grazie, figurati, cmq se ti interessa ho una MOD che rileva la lingua del browser e, se presente, imposta quella come default!
Il 90% dei problemi di un pc si trova
tra la tastiera e la sedia.
Raga, ho fatto altre piccole modifiche che rendono ancora più perfetto lo script!
[list=a][*]Bugfix: Corretto errore rilevazione lingua browser[*]Added: Protezione anti-hacking include();[/list=a]
Ed eccovi qui il codice bello e sistemato:
se ci sono errori segnalatemeli, grezie!Codice PHP:$defaultlang = "it";
$browserlang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if (isset($_SESSION['lingua'])) {
if(isset($_GET['intl'])) {
if (is_file("lang/".$_GET['intl'].".php")) {
$_SESSION['lingua'] = $_GET['intl'];
} else {
$_SESSION['lingua'] = $defaultlang;
}
}
} else {
if(isset($browserlang) and !empty($browserlang) and is_file("lang/".$browserlang.".php")) {
$_SESSION['lingua'] = $browserlang;
} else {
$_SESSION['lingua'] = $defaultlang;
}
}
if(preg_match('/[a-z]+/',$_SESSION['lingua']) && is_file("lang/".$_SESSION['lingua'].".php")) {
include("lang/".$_SESSION['lingua'].".php");
} else {
include("lang/".$defaultlang.".php");
}
![]()
Il 90% dei problemi di un pc si trova
tra la tastiera e la sedia.