Hasta ahora, las únicas 2 cosas buenas que he visto sobre el uso de gettext en lugar de matrices es que no tengo que crear la "sub-matriz" de "saludo" (o como se llame). Y no tengo que crear una carpeta para el "idioma predeterminado".Usando PHP Gettext Extension vs PHP Arrays in Multilingual Websites?
¿Existen otros pros y los contras de usar gettext y php arrays para sitios web multilingües?
USO getText:
español/messages.po:
#: test.php:3
msgid "Hello World!"
msgstr "Hola Mundo"
index.php:?
<?php echo _("Hello World!"); ?>
index.php lang = español:
<?php echo _("Hello World!"); ?> turns to Hola Mundo
utilizando matrices 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 = español
<?php echo $lang['greeting']; ?> greeting turns to Hola Mundo
(empecé con gettext, pero no fue apoyado en mi compartida libre Zymic de alojamiento. No quería usar Zend_translate, lo encontré demasiado complicado para mi tarea simple, así que finalmente terminé usando php define
, pero más tarde alguien me dijo que debería usar matrices)
Al utilizar matrices, todavía se puede utilizar pladeholders utilizando printf, ¿verdad? (Sin embargo, no tiene los formularios en plural) – middus
Sí, puede. :) –
El propio gettext de PHP es realmente escamoso con mod_php al menos. No solo el problema de almacenamiento en caché, sino algunas actualizaciones, las traducciones simplemente no funcionan. Así que hay uno casi en reemplazo: [php-gettext] (https://launchpad.net/php-gettext/) Es extremadamente simple de usar en lugar de 'setlocale' usas' _setlocale' y así sucesivamente ... – Ciantic