CLASSE PHP PERMETANT DE GERER LE MULTILANGUES

Messages postés
6
Date d'inscription
jeudi 7 août 2003
Statut
Membre
Dernière intervention
8 août 2008
- - Dernière réponse : cs_garfield90
Messages postés
389
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

Afficher la suite 
cs_garfield90
Messages postés
389
Date d'inscription
lundi 7 juillet 2003
Statut
Webmaster
Dernière intervention
10 février 2009
-
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
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
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
389
Date d'inscription
lundi 7 juillet 2003
Statut
Webmaster
Dernière intervention
10 février 2009
-
@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
1305
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015
-
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
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
13 -
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
-
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
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
13 -
En gros, il manque l'échappement des guillemets... add_slashes() par exemple.
coucou747
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
26 -
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
-
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
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
13 -
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
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
26 -
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
-
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