J'ai examiné quelques options pour permettre la localisation et l'internationalisation d'une application php dynamique. Il semble y avoir une variété d'outils disponibles tels que gettext et Yahoo R3 et je suis intéressé à entendre à la fois les développeurs et les traducteurs sur les outils qui sont bons à utiliser et quelle est la fonctionnalité importante pour faciliter la mise en œuvre et la traduction.Quels sont les bons outils/frameworks pour i18n d'une base de code PHP?
Répondre
L'implémentation de PHP gettext fonctionne très bien. Et les fichiers po avec po edit et gettext sont à peu près aussi bons que possible pour gérer la localisation, sachant qu'aucune solution de ce type ne peut gérer complètement les complexités des différentes langues. Par exemple, la méthode gettext est très bonne sur les formes plurielles, mais rien de ce que j'ai vu ne peut gérer des choses comme la conjugaison.
Pour plus d'informations voir mon post ici: How do you build a multi-language web site?
Nous avons bricolé avec Zend_Translate, puisque nous utilisons de toute façon Zend Framework. C'est très bien documenté et jusqu'à présent extrêmement solide.
Dans le passé, j'ai presque utilisé ma propre solution maison principalement. Ce qui implique des fichiers de langue avec des constantes ou des variables qui contiennent toutes les parties de texte et qui sont simplement répercutées dans la vue/le modèle plus tard. En ce qui concerne gettext, jadis, j'ai entendu dire que l'implémentation de gettext de PHP était défectueuse, mais je ne peux pas vraiment le confirmer et je n'ai aucune référence pour l'instant.
Il y a un certain nombre d'extensions utiles dans PECL: http://pecl.php.net/packages.php?catpid=28&catname=Internationalization
vous peut, en particulier, veulent vérifier php-intl, qui fournit la plupart des la clé i18n fonctionne depuis les composants internationaux pour Unicode (ICU)
Xataface peut être utilisé pour internationaliser facilement une application PHP/MySQL arbitraire. Il prend en charge la traduction de votre texte statique et de vos données de base de données. Tout ce que vous avez à faire est d'ajouter une ligne ou 2 de code à quelques endroits dans votre application et c'est bon à faire.
http://xataface.com/documentation/tutorial/internationalization-with-dataface-0.6
la base de données solution conduit à afficher les messages ne sont pas toujours la bonne, je travaillais dans un site avec plus de 15 langues et traductions ont été un problème.
donc notre conception était:
- application de traduction en php-mysql (accès de traduction, etc.)
- puis traductions sont écrites en php arrrays
- ces tableaux sont également mises en cache dans APC pour accélérer sur le site.
ainsi localisent les différentes langues que vous ne devez faire un include
comme
<?php
include('lang/en.php');
include('lang/en_us.php'); // this file overrides few keys from the last one.
?>
double inclusion semble être une idée très intelligente! – Mike
- 1. Quels sont les bons serveurs d'applications pour les piles LAMP?
- 2. Quels sont les bons tutoriels Wireshark?
- 3. Quels sont les bons addins d'utilisabilité pour Visual Studio 2008?
- 4. Quels sont les outils de couverture de code pour Perl?
- 5. Quels sont les bons conteneurs d'applications pour les services de niveau intermédiaire pour scala?
- 6. Quels sont les bons blogs de Ruby on Rails?
- 7. Quels sont les bons exemples d'utilisation de WPF Datagrid?
- 8. Quels sont les bons blogs à suivre dans l'espace RIA?
- 9. Quels sont les bons outils disponibles pour créer de l'aide en ligne pour les applications .net?
- 10. Quels sont les bons exemples d'utilisation du pattern/idiom CALLBACK?
- 11. Quels sont les bons modules Perl pour la programmation basée sur les flux sur les fichiers?
- 12. Quels sont les bons outils pour mesurer les allocations de mémoire sous Windows?
- 13. Quels sont les bons matériaux pour un développeur de bureau pour devenir développeur Web?
- 14. Quels sont les meilleurs outils CASE gratuits pour PHP?
- 15. Quels sont les bons forums pour discuter des problèmes de conception de sites Web?
- 16. Quels sont les CMS pour mobile?
- 17. Où sont les bons endroits pour commencer à apprendre VB?
- 18. Quels sont les bons moyens de remplir une base de données de développement de rails avec de fausses données?
- 19. Quels sont les bons moyens pour concevoir ou représenter un état?
- 20. Quels sont les bons choix pour travailler avec JSON dans ActionScript?
- 21. Quels sont les codes de balayage pour:
- 22. Quels sont les attributs?
- 23. Quels bons logiciels ou scripts sont disponibles pour gérer les utilisateurs et les abonnements sur notre site Web?
- 24. Quels sont les sites Web qui contiennent de bons exemples de conception d'interface utilisateur?
- 25. Quels éditeurs sont recommandés pour l'écriture de code Ruby ou Ruby on Rails?
- 26. Quels sont de bons exemples pour avoir une idée des fonctionnalités et des constructions d'OO?
- 27. Quels livres et ressources sont bons pour apprendre OpenGL ES pour iPhone OS rapidement?
- 28. Quels sont les plugins recommandés pour Trac?
- 29. Quels outils de génération automatique de code sont disponibles pour les classes Castle ActiveRecord?
- 30. Quels sont les grands projets .NET avec code source?
[intl] (http://php.net/manual/book.intl.php) est livré avec PHP 5.3 – DanMan