Je suis à la recherche d'un moyen conforme aux normes de stocker du contenu multilingue pour une application Web. Jusqu'à présent, j'ai utilisé mes propres fonctions "translate()" qui lisent les données d'un fichier ou d'une table de dictionnaire dans une base de données. Toutefois, la mise à jour des dictionnaires dans une table de base de données est très fastidieuse si vous travaillez avec différentes copies de l'application Web. J'aime gettext car il y a une multitude d'outils disponibles pour cela. Cependant, je développe des applications pour différentes plates-formes. Je ne suis absolument pas disposé à faire face aux manières de merde de setlocale() et consorts - à savoir les douzaines de variations de chaînes de caractères différentes qui varient d'un système à l'autre que vous devez fournir pour que cela fonctionne. Plus jamais. J'ai un ensemble de langues - disons de, en, et es - et je veux charger le dictionnaire approprié et travailler avec _() sans toucher setlocale() ou bindtexdomain() une seule fois.i18n avec gettext mais sans les tracas de la localisation?
Est-ce que c'est en quelque sorte possible d'utiliser gettext? Ou quelqu'un connaît-il une autre solution simple, petite, rapide (!) I18n pour PHP qui peut fonctionner avec des fichiers .po/.mo, de préférence sans nécessiter d'extension PHP?
Il n'est pratiquement pas possible d'utiliser gettext en PHP sans utiliser l'extension gettext, mais ne vous inquiétez pas, c'est une extension assez courante/standard de PHP et la plupart des installations l'ont déjà activé. – sorin
@Sorin: C'est possible, il y a une implémentation PHP native avec la plupart, sinon toutes, les fonctions gettext. –
@votingmeisfree wordpress et cakephp, pour n'en nommer que quelques-uns, utilisez les fichiers po et mo sans utiliser l'implémentation de gettext. Ils ouvrent le fichier directement. – T0xicCode