2010-11-10 5 views
3

Je travaille sur des logiciels open source et je pense à utiliser un gettext pour localiser l'interface. La question est: est-il un moyen pour moi de ne pas ajouter une dépendance de module gettext?Utiliser gettext en PHP

Étant donné que le support de gettext est un module PHP, j'ai besoin que tous les utilisateurs l'installent. Y a-t-il une alternative pour cela?

Répondre

4

I pensegettext est compilé dans la grande majorité des installations PHP. Je n'en ai jamais vu sans elle. Cela dit, le Zend_Translate de Zend Framework est vraiment indépendant du paquet, et beaucoup plus puissant que gettext. Il peut gérer un certain nombre de formats de dictionnaire, y compris gettext. Il peut être utilisé comme un composant autonome. Si vous commencez par la localisation, cela vaut vraiment le coup d'oeil.

+0

Bien Zend_Translate n'est pas vraiment indépendant du paquet, cela dépend de tout le Zend_Framework. :-) –

+1

@MarcoDemaio J'ai réussi à extraire Zend_Translate du Zend_Framework. Cela dépend uniquement de l'autoloader, de l'exception et des classes locales. – tomjakubowski

3

Considérons gettext comme une extension héritée. PHP prend maintenant en charge la nouvelle bibliothèque ICU. Recherchez les classes suivantes: Intl, Locale, MessageFormatter.

+2

pour la classe INTL vous devez avoir PHP> 5.3 (ou installer intl comme extension php pecl). ... les utilisateurs d'hébergement partagé devront probablement utiliser gettext. – Stann

+0

Qu'est-ce qui vous fait dire que gettext est un poste existant? Où est-ce que tu as trouvé ça? – DanMan

+0

mmm. Je regarde à travers les documents Intl et ne peux pas comprendre comment faire une traduction simple: chaîne anglaise à la chaîne étrangère .... C'était facile avec gettext. – Stann

1

Il existe actuellement deux alternatives. php-gettext et gettext.php, tous deux implémentés dans PHP userland, vous pouvez donc les utiliser comme solution de repli si l'extension PHP natif gettext n'est pas compilée.