phppro
Messages postés6Date d'inscriptionjeudi 7 août 2003StatutMembreDernière intervention 8 août 2008
-
31 mai 2007 à 21:45
cs_garfield90
Messages postés388Date d'inscriptionlundi 7 juillet 2003StatutWebmasterDernière intervention10 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.
cs_garfield90
Messages postés388Date d'inscriptionlundi 7 juillet 2003StatutWebmasterDernière intervention10 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és12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 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és388Date d'inscriptionlundi 7 juillet 2003StatutWebmasterDernière intervention10 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és1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 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és2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 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és6Date d'inscriptionjeudi 7 août 2003StatutMembreDerniè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és2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 31 mai 2007 à 22:58
En gros, il manque l'échappement des guillemets... add_slashes() par exemple.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 31 mai 2007 à 22:56
essai ca :
$test->ajouterMotALangue("test", "FR", '"');
ton fichier ne marchera plus
phppro
Messages postés6Date d'inscriptionjeudi 7 août 2003StatutMembreDerniè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és2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 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és12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 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és6Date d'inscriptionjeudi 7 août 2003StatutMembreDerniè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.
15 juin 2007 à 16:42
C'est pour ca qu'il y a X codes similaires sur ce site.
15 juin 2007 à 16:26
15 juin 2007 à 16:23
1 juin 2007 à 14:25
@ tchaOo°
31 mai 2007 à 23:04
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...
31 mai 2007 à 22:58
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.
31 mai 2007 à 22:58
31 mai 2007 à 22:56
$test->ajouterMotALangue("test", "FR", '"');
ton fichier ne marchera plus
31 mai 2007 à 22:51
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.
31 mai 2007 à 22:50
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.
31 mai 2007 à 22:30
si par malheur t'as un caractere qui comporte ", alors ton script ne marche plus
31 mai 2007 à 21:45
Je suis preneur ...
Merci aussi de notez la source sa me fera très plaisir même si elle est mauvaise.
Cordialement
phppro