Gettext

ViPHP
ViPHP | 4674 Messages

09 juil. 2007, 13:07

Bonjour :)

J'ai considéré que mon autre message était résolu. Merci :). Alors je relance la discussion -- plus précise -- ici, sur Gettext.

Nous sommes devant un fait. Je vais préférer Gettext à d'autres systèmes de languages. Et je vais donc privilégier Gettext pour l'instant.

Que savons-nous ? Gettext fonctionne sans aucun problème sous les systèmes Unix. En revanche, sous Windows, c'est une réel catastrophe. Alors au lieu de bidouiller, à n'en plus finir, pour faire fonctionner Gettext sous Windows, je vais émuler le comportement de la fonction gettext(); de PHP seulement pour Windows. Oui ce sera plus long au traitement, mais le cache peut amortir le coût en ressources j'espère (je pars du principe que d'équiper un serveur sous Windows est déjà mauvais pour les ressources, et que la personne qui maintient le serveur connait les conséquences d'une telle décision).

Donc je vais opérer de la façon suivante :
  • nous sommes sur un système Unix :
    • nous utiliserons les fonctions Gettext de PHP, qui sont plus appropriées et plus rapides ;
    nous sommes sur un système Windows :
    • nous allons émuler le comportement des fonctions Gettext de PHP dans une classe.
Sous Unix donc, aucun soucis.
Sous Windows, je vais avoir besoin des fonctions pack() et unpack() j'imagine. En lisant la documentation de Gettext sur le site de GNU, j'ai trouvé ceci : 10.3 The Format of GNU MO Files. Je sens que le schéma me sera trèèès utile.

Ce sera la première fois que je vais lire des fichiers binaires avec unpack. Si quelqu'un pourrait me donner quelques indications quant à la bonne utilisation et démarche à adopter, ce serait super (je ne sais pas s'il y a des précautions à prendre par exemple).

Pour conclure, pour ceux qui pensent que ce serait trop long d'utiliser un émulateur des fonctions Gettext de PHP par rapport à utiliser un fichier TMX, INI, XLIFF etc., je répondrais que parser le fichier serait sûrement plus long que d'émuler Gettext (du moins, je tente de m'en persuader). Votre opinion sur le sujet ?

Voilà, je vais manger, et après, on va s'amuser :lol:.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

09 juil. 2007, 13:36

Mon opinion sur le sujet c'est que si Gettext te pose tant de soucis sous Windows, alors tu peux simplement écrire dans la doc de ton framework qu'«utiliser la méthode GetText sur un serveur Windows est très déconseillée», et laisse ça tel quel.

Tu vas perdre énormément de temps (et quand je dis perdre, je le pense sincèrement car à mon avis tu vas dans le mur en essayant de faire ça) et ça va ralentir d'autant la conception de ton projet général. Tu devrais mettre ça de côté, un simple «@todo Gettext on Windows (sucks ?)» suffira :lol:

C'est le genre de détail dont on s'occupe après la version alpha ça ;)

Je ferai quelques tests entre midi et deux sur mon poste de travail (à la maison c'est Linux donc je ne peux pas tester), tu peux m'envoyer un code d'exemple que tu testes sous Windows et qui ne fonctionne pas (avec les .mo et tout) ?
Je t'envoie mon adresse e-mail par MP

ViPHP
ViPHP | 4674 Messages

09 juil. 2007, 18:39

Fin !

de la journée déjà. J'ai mal à la tête, aux yeux, et au dos. Mais également fin du code. J'ai réussi à émuler les fonctions Gettext. Pour ceux que ça intéresse, demander moi en MP (Messages Privés). Le code est trop long pour être mis ici dans sa totalité. Et je l'ai déjà mis en tant qu'adaptateur, donc il serait difficilement utilsable en dehors du package.

Pour ceux que ça intéressent, je peux expliquer comment faire dans les grandes lignes, et expliquer précisement la vingtaine de lignes très importante.
Finalement, c'est pas si compliqué que ça. La documentation est très complète, et un peu de flair suffit à en venir à bout (et également quelques heures devant soit).

Demain je termine la conception comme il faut, et je passe à l'interprétation de TMX, INI et XLIFF.

Le sujet est résolu ;-)
Merci principalement à Naholyr pour son aide, et à tous les autres :) C'est la classe ce forum quand même :P (non Sékiltoyai, c'est pas du fayotage ! hehe)
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
ViPHP | 5924 Messages

09 juil. 2007, 18:47

A la limite publie le sur ton site, ca resservira :)

ViPHP
ViPHP | 4674 Messages

09 juil. 2007, 19:50

Ce sera sur le site : http://hoa-project.net, mais quand tout sera terminé :P (ou au moins le design ^^).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).