CLASSE PHP PERMETANT DE GERER LE MULTILANGUES

phppro Messages postés 6 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 8 août 2008 - 31 mai 2007 à 21:45
cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009 - 15 juin 2007 à 16:42
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42926-classe-php-permetant-de-gerer-le-multilangues

cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009
15 juin 2007 à 16:42
J'ai jamais dis ca, après c'est une question de contrainte et d'envie ;)

C'est pour ca qu'il y a X codes similaires sur ce site.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
15 juin 2007 à 16:26
tu sais, c'est pas parce-qu'un truc existe qu'on a pas le droit de le recoder...
cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009
15 juin 2007 à 16:23
@neigedhiver : dans le Zend Framework, t'as tout une serie de classe permettant de gérer ca, manque à coder un systeme permettant de créer/modifier les fichiers, si j'ai le temps, je ferai une ébauche ou le tout
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
1 juin 2007 à 14:25
Moi j'opterais plutôt pour une collection d'objet à la place de l'abstraction... tu charge à la volé une classe dédié à écrire/lire une type de fichier cette dernière implémentant une interface définissant les méthodes dont tu as besoin... .. .

@ tchaOo°
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
31 mai 2007 à 23:04
J'avais en tête une classe pour gérer le multilangue...

Selon moi, il manque :
- import d'un fichier de langue (tableau php, constantes ou fichier xml, ou ini, ou autre standard)
- des fonctionnalités liées à la localisation : heure, direction, encodage des caractères, etc

Je sais pas exactement comment je verrais ça. Une chose est sûre, php4, c'est quand même super limité comparé à php5...

* Une classe abstraite qui lit un fichier de langue, avec plusieurs classes concrètes dérivées suivant le format lu
* Une classe abstraite qui écrit le fichier de langue, avec, pareil, des classes concrètes. L'utilisation de l'une puis de l'autre permettrait de faire un outil de conversion sans le développer, quasiment...
* Une classe qui gère l'affichage des expressions, la langue utilisée, etc

Ce serait une base...
phppro Messages postés 6 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 8 août 2008
31 mai 2007 à 22:58
Merci pour vos commentaires j'ai bien noté le fait que ma classe était a améliorer.

En tout cas merci pour la fonction array_search() que je ne connaissait pas. Je vais donc me remettre au travail.


Merci pour tout sa fait super plaisir

Je met à jour la source dès que je l'ai fait.
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
31 mai 2007 à 22:58
En gros, il manque l'échappement des guillemets... add_slashes() par exemple.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
31 mai 2007 à 22:56
essai ca :
$test->ajouterMotALangue("test", "FR", '"');
ton fichier ne marchera plus
phppro Messages postés 6 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 8 août 2008
31 mai 2007 à 22:51
En effet cette source construit aussi le fichier multilangue. Ce n'est pas tout en effet tu peux aussi l'utiliser en mode objet de façon simple. En fait le fichier fait office de sauvegarde (même si ce n'en est pas un....). Je suis en train de compléter cette source pour charger le fichier et ainsi remplir l'objet.


Par contre je ne comprend pas pourquoi le caractère guillemet me fait sauter le script ???

J'ai penser que cette source s'adressait avant tout aux développeurs ...

Merci de m'expliquer pour que je puisse améliorer cette source.
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
31 mai 2007 à 22:50
Salut,

Alors que je regardais le fonctionnement de chaque méthode, je me suis arrêté direct sur existeLangue()
Tu fais un truc bien compliqué alors qu'il existe une fonction php qui donne directement la clé selon la valeur : c'est array_search()
=> http://ch2.php.net/manual/fr/function.array-search.php
Du coup, je constate que tu utilises le même procédé pour d'autres méthodes => y'a de quoi optimiser de ce côté là.

Sinon, la méthode qui génère le fichier de langue présuppose qu'on utilise des constantes, et c'est peut-être un peu dommage... Par exemple, moi, j'utilise un tableau à deux dimensions. Certains utilisent des tableaux à 3 dimensions, la première étant la catégorie, la seconde l'expression à traduire.
Peut-être qu'il faudrait une classe d'abstraction (ouais, c'est du php5... mais j'y reviens après) qui génère un fichier de langue, dans le format qu'on veut (grâce à une classe concrète).

Par ailleurs, je trouve dommage que cette classe soit en php4. C'est pas grand chose, elle ne nécessite pas, en l'état actuel, les possibilités de php5, mais justement, l'exemple que je donne dans le paragraphe précédent pourrait être une, à mon sens, une idée d'amélioration.

Et pour finir, je pense qu'il est rare qu'on utilise plusieurs langues sur un même site (sauf cas particuliers).
J'aurais plutôt opté pour utiliser une langue par défaut. Pour afficher un mot, j'aurais mis la langue comme paramètre optionnel : si non spécifié, langue par défaut, sinon, langue spécifiée.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
31 mai 2007 à 22:30
en gros, ta source cres le fichier multilangue, mais faut saisir le contenu de toute facon... donc ou est l'interet ? En general, on code une classe qui gere la lecture d'un xml, la selection de la langue par rapport au infos que donne le navigateur, et qui gere l'affichage d'une chaine en fonction d'une langue et d'une clef...

si par malheur t'as un caractere qui comporte ", alors ton script ne marche plus
phppro Messages postés 6 Date d'inscription jeudi 7 août 2003 Statut Membre Dernière intervention 8 août 2008
31 mai 2007 à 21:45
N'hésitez pas à laisser vos commentaire sur cette source.

Je suis preneur ...

Merci aussi de notez la source sa me fera très plaisir même si elle est mauvaise.

Cordialement

phppro
Rejoignez-nous