[Php-it] siti multilingua

Emiliano Gabrielli (aka AlberT) AlberT at superalbert.it
Wed May 31 17:40:42 CEST 2006


On Wednesday 31 May 2006 15:50, Oscar Biondi - supporto wrote:
> tabella: testo (id, lingua, testo)
> (1, "IT", "testo Italiano")
> (2,"EN", "English text")
>
> spero di esser stato chiaro

per rispondere anche a Gabriele, come verrebbe gestita la traduzione della 
seguente frase con un metodo diverso da gettext?

"Ciao Ciccio, è da %d giorni che non ti si vede, ricorda che sei l'utente 
numero %d"

dove %d (che ha un formato "casuale") è un segnaposto per un numero :-)

problemi:
- in alcune lingue può risultare elegante e naturale sconvolgere l'ordine
  delle parole nella frase originale
- in alcune lingue esistono più forme per il plurale, in italiano una sola!

soluzioni gettext:
- la possibilità di riferirsi a un certo preciso "segnaposto" della funzione
  sprintf():

<?php
$format = _("%2\$s has %1\$d citizens");
printf($format, $num, $city);
// le traduzioni possono essere:
// it: 
//    "%2\$s ha %1\$d abitanti"
// tradotto dal vattelappescaschese:
//    "%1\$d uomini sono residenti in %2$s"
?>

- esempio in cz
setlocale(LC_ALL, 'cs_CZ');
printf(ngettext("%d window", "%d windows", 1), 1); // 1 okno
printf(ngettext("%d window", "%d windows", 2), 2); // 2 okna
printf(ngettext("%d window", "%d windows", 5), 5); // 5 oken

A questa url della doc + esauriente: 
 http://www.gnu.org/software/gettext/manual/html_mono/gettext.html#DOCF5

-- 
<?php echo '     Emiliano Gabrielli (aka AlberT)     ',"\n",
'  socio fondatore e membro del direttivo del GrUSP  ',"\n",
' AlberT_at_SuperAlberT_it   -   www.SuperAlberT.it  ',"\n",
'  IRC:    #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>


More information about the Php-it mailing list