Nella versione precedente del sito avevo inserito questo piccolo tutorial. Lo lascio in linea nel caso interessasse ancora a qualcuno.
[Mini Tutorial] - Le date in italiano con setlocale
Se facciamo stampare una data in php di solito abbiamo qualcosa del genere: Wednesday, 07 January 2004
Non ci sarebbe una soluzione semplice per tirar fuori un bel "Mercoledì, 07 gennaio 2004"?
Ci sarebbe e si chiama setlocale, ma dipende un po' da dove gira lo script: Windows, Linux, altri Unix...
E con particolari installazioni di php potrebbe anche non andare (vedere le note degli utenti sul manuale alla funzione setlocale).
Php >= 4.3.0
Da questa versione in avanti è possibile 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 una cosa di questo tipo:
<?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; "it_IT.ISO8859-1", "it_IT.ISO_8859-1" per 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 su Windows e poi mette in rete su Unix è una seccatura), 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");
?>
**************
Tutto questo per esperienza personale con alcune prove. Certamente mancherà qualcosa ma, trovato il parametro giusto (sempre che ci sia: non è detto ad esempio che su tutti i sistemi di questo mondo ci sia il supporto per l'italiano, o per l'albanese, o per quello che vi pare...), basta aggiungerlo all'array $ita.
Non mi sono nemmeno sprecato troppo nei test:
Su Windows XP con Php 4.3.2, su Linux con php 4.1.2, su FreeBSD con Php 4.2.3 e su FreeBSD con Php 4.0.6 compilato fastcgi.