Finora le uniche 2 cose positive che ho visto sull'uso di gettext invece degli array è che non devo creare il "saluto" "sotto-array" (o qualunque sia il suo nome). E non devo creare una cartella per la "lingua predefinita".Utilizzo di PHP Gettext Extension vs matrici PHP in siti Web multilingue?
Esistono altri vantaggi per l'utilizzo degli array gettext e php per i siti Web multilingue?
UTILIZZO gettext:
spagnolo/messages.po:
#: test.php:3
msgid "Hello World!"
msgstr "Hola Mundo"
index.php:?
<?php echo _("Hello World!"); ?>
index.php lang = spagnolo:
<?php echo _("Hello World!"); ?> turns to Hola Mundo
usando array PHP:
lang.en.php
<?php
$lang = array(
"greeting" => "Hello World",
);
?>
lang.es.php
<?php
$lang = array(
"greeting" => "Hola Mundo",
);
?>
index.php:?
<?php echo $lang['greeting']; ?> greeting turns to Hello World
index.php lang = spagnolo
<?php echo $lang['greeting']; ?> greeting turns to Hola Mundo
(ho iniziato con gettext, ma non è stato supportato nel mio comune gratuita Zymic hosting. Non volevo usare Zend_translate, l'ho trovato troppo complicato per il mio compito semplice, quindi alla fine ho finito con php define
, ma più tardi qualcuno mi ha detto che dovrei usare gli array)
Quando si utilizza le matrici, è comunque possibile utilizzare pladeholders utilizzando printf, no? (Non hai le forme plurali, però) – middus
Sì, puoi. :) –
Il gettext di PHP è veramente instabile con mod_php almeno. Non solo il problema di memorizzazione nella cache, ma in alcuni aggiornamenti le traduzioni semplicemente non funzionano. Quindi c'è una sostituzione quasi in calo: [php-gettext] (https://launchpad.net/php-gettext/) È estremamente semplice da usare invece di 'setlocale' si usa' _setlocale' e così via ... – Ciantic