Newsgroup: it.comp.www.php
Titolo: Settare lingua in PHP

Ciao a tutti,
ho scritto un programma in PHP che restituisce delle date, il problema è che
non riesco a visualizzarle in italiano .
Utilizzo queste due funzioni estraendo la data in formato numerico da
database SQL:
$data_time = strtotime("$data_row[data]");
$data_valid = date("D j F", $data_time);
se $data_row[data] è ,ad esempio, "2003-10-01"  $data_valid assume "Wed 1
October".
Cosa devo fare ?
Grazie.
Maurizio.


Puoi fare una cosa simile:
function convertdate($data)
{
$mese=array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");
$giorno=array("Domenica","Lunedi","Martedi","Mercoledi","Giovedi","Venerdi","Sabato");
$expdata=explode("-",$data);
return $giorno[$expdata[0]]." ".$expdata[1]." ".$mese[$expdata[2]-1]." 
".$expdata[3];
}
giusto per dare l'idea
ciao
Alesi_27

 ha detto:

funzione setlocale():
http://www.php.net/manual/it/function.setlocale.php
Francesco
_____________________________________
Per rispondere in e-mail togli NOSPAM 

 
http://www.php.net/manual/it/function.setlocale.php
setlocale(LC_TIME, 'it_IT') non mi funziona.
C'è qualche variabile d'ambiente da settare ?
Maurizio

 C'è qualche variabile d'ambiente da settare ?
Dipende dall'os...
Riposto un mio vecchio tutorial sull'argomento.. visto che non è 
indicizzato sui gruppi di google.
***********************
[Mini Tutorial] - Le date in italiano con setlocale
php >= 4.3.0
permette di passare più parametri a setlocate per le impostazioni 
locali.. la funzione li prova finché trova uno che funziona.. altrimenti 
restituisce false.
Quindi si risolve con qualcosa del genere:
<?php
$ita = 
array("ita","it","Italian","it_IT","it_IT.ISO8859-1","it_IT.ISO_8859-1");
setlocale (LC_ALL,$ita);
echo strftime ("%A, %d %B %Y");
?>
"ita","it","Italian" dovrebbero andare bene per windows... "it_IT" per 
linux e "it_IT.ISO8859-1","it_IT.ISO_8859-1" sotto freebsd.
php < 4.3.0
Qui il problema è che si può passare un solo parametro a setlocate.
O si conosce quello che funziona e lo si mette a mano a seconda dei casi 
(però se uno sviluppa in locale in win e poi mette in rete su linux o 
unix...), oppure si fa una cosa del genere...
<?php
function set_ita() {
     $ita = 
array("ita","it","Italian","it_IT","it_IT.ISO8859-1","it_IT.ISO_8859-1");
     $tot = count($ita);
     for ($i=0;$i<$tot;$i++) {
         if ($loc = setlocale (LC_ALL,$ita[$i])) {
             return $loc;
         }
     }
}
set_ita();
echo strftime ("%A, %d %B %Y");
?>
--
In un qualsiasi insieme di dati, la cifra cosi' evidentemente corretta 
da non richiedere un controllo e' l'errore.

 linux e "it_IT.ISO8859-1","it_IT.ISO_8859-1" sotto freebsd.
Ho php 4.3.1 e usando il codice sopra scritto ho la visualizzazione in
inglese.
Utilizzo linux Slackware 8.0


Maurizio wrote:

Dai un'occhiata in /usr/share/locale/ (dovrebbe essere qui.. se non 
ricordo male) per vedere se hai installato il supporto per l'italiano.
Se non c'è installalo.. :) se c'è.. mi fai sapere che stringa usa x 
definirlo?
Comunque missà che non ce l'hai.. su linux dovrebbe essere it_IT
--
Le proposte sono sempre capite dagli altri in maniera diversa da come le 
concepisce chi le fa.

Comunque missà che non ce l'hai.. su linux dovrebbe essere it_IT
confermo it_IT


"Ic^Å^rO" <TOGLIicaro...@MAIUSCOLEfreemail.it> ha scritto nel
messaggio news:qTffb.6774$e6.2...@twister2.libero.it...

In /usr/share/locale ho una directory    "it/" e un file locale.alias che
contiene la stringa
"italian       it_IT.ISO-8859-1"

Maurizio wrote:

ok.. allora aggiungi anche it_IT.ISO-8859-1 all'array
$ita = 
array("ita","it","Italian","it_IT","it_IT.ISO8859-1","it_IT.ISO_8859-1","it_IT.ISO-8859-1");
Fammi sapere se adesso va...
Per questioni di compatibilità è comunque megli se usi la funzione per 
php < 4.3
--
Quando si trova e si corregge un errore, si vedra' che andava meglio prima.

 php < 4.3
Ho usato la funzione per php < 4.3 e ho aggiunto la stringa
it_IT.ISO-8859-1, ma niente da fare, sempre in inglese esce;
ho provato su un RedHat 9 e lì funziona regolarmente (usa il PHP 4.2.2).

 ho provato su un RedHat 9 e lì funziona regolarmente (usa il PHP 4.2.2).
Per scrupolo ci aggiungerei anche un "italian" tutto in minuscolo.
