|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() |
Bonjours,
Je suis en train de créer un site sur lequel je voudrai mettre plusieur langue. Je ne suis pas encore vraiment décidé a savoir comment je pourrai faire ca. J'ai penser à faire une base de donnée "langue" qui aurrai la traduction de toute les langues. Puis dans mes pages mettre des vaiables qui pointerai vers ce tableau pour afficher le texte dans la bonne langue. Que penser vous de ceci. y a t'il un moyen plus simple? Merci d'avance de votre aide |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() Étudiant Inscription : juillet 2004 Messages : 777 ![]() |
En generale ce qui est fait c'est avec un fichier qu'on inclus selon la langue demandé et qui contient les differents texte... Parce que sinon vla le nombre de requete que tu va faire...
|
|
|
00
|
|
|
#3 | ||||||
|
Membre confirmé
![]() ![]() Inscription : mai 2006 Messages : 196 ![]() |
Utilise le langage XML, en php tu as les fonction de simplexml qui permette d'extraire facilement les données avec simple_xpath. Une fois que tu connais bien le fonctionnement de l'XML et l'utiliser avec ces petites fonction tu pourra t'attaquer aux fonctions DOM qui permettent de manipuler les fichiers XML avec beaucoups plus de fonctions. Voici une classe que j'ai fait qui pourrais t'aider pour le debut
Code :
Code XML :
Pour ajouter une langue il suffit de remettre des balise <en> (EN ou ce que tu veut) avec le texte entre, l'objet s'occupe de la langue tout seul, utilise la classe comme ceci : Code :
|
||||||
|
|
00
|
|
|
#4 |
|
Membre expérimenté
![]() Étudiant Inscription : juillet 2004 Messages : 777 ![]() |
Bof je trouve pas que ca soit la meilleur methode...
|
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() |
ok merci beaucoup d'avoir pris le temps de m'expliquer tout ca.
Je connai très peu (voire pas du tout en fait) le xml. Mais je vais essayer d'étudier le sujet. Je pense que c est ce qu il me fallai. encore merci
|
|
|
00
|
|
|
#6 |
|
Inscrit
Inscription : octobre 2006 Messages : 637 ![]() |
Surtout que SimpleXML offre des performances désastreuses dès que le fichier source commence à être important.
Personnelement je fais simplement un fichier dans lang/fr/home.php dans laquelle je déclare un tableau dont les valeurs sont en francais, et un fichier lang/en/home.php dans lequel est un tableau de valeurs en anglais. Selon moi c'est la méthode la plus performante possible pour stocker les languages.
__________________
Q: Dois-je haïr et cogner sur Microsoft ? R: Non, vous n'êtes pas obligé. Non pas que Microsoft n'est pas écoeurant, mais il y avait une culture hacker bien avant Microsoft et il y en aura une bien après que Microsoft aura été de l'histoire ancienne. Toute énergie dépensée à haïr Microsoft serait mieux employée par vos compétences et votre passion. Écrivez du bon code, cela brisera suffisamment Microsoft sans polluer votre karma. Comment devenir un hacker ? par Eric Steven Raymond |
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() ![]() Inscription : mai 2006 Messages : 196 ![]() |
Justement moi j'évite de faire des fichiers important
|
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() |
il n'y a donc pas vraiment de solution miracle que tous les webmaster utilisent?
Pour ta proposition is_null si j'ai bien compris je met des variable dans ma page.php et je fait un include de lang/fr/page.php avec un tableau de toutes les variables dont j'ai besoin dans page.php et ceci pour toute les langues?! |
|
|
00
|
|
|
#9 | ||
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
En général oui c'est assez utilisé le fichier /lang/__un_indentifiant_de_la_langue__/lang.php
avec dedans Code :
|
||
|
|
00
|
|
|
#10 | |||||||
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Je suis assez d'accord avec ce genre de propositions
Citation:
Code :
Code :
|
|||||||
|
|
00
|
|
|
#11 |
|
Membre confirmé
![]() ![]() Inscription : mai 2006 Messages : 196 ![]() |
C'est pas mal mais si le site est très gros et qu'il y a beaucoups d'utilisateurs la mémoire des serveurs sera vite remplies avec des tableaux
Il faut bien penser à ce que l'ont veut au final avant même de commencer |
|
|
00
|
|
|
#12 |
|
En attente de confirmation mail
Inscription : octobre 2002 Messages : 347 ![]() |
Bonjour,
je ne pense abosulment pas que la solution d'avoir une table (id,libelle,lang) reliée à chaque table ayant un champ à traduire soit une bonne solution. c'est même critique dans le cas d'un gros volume de données à traduire ou déjà traduites ou en 4 langues même !. si ta table n'a qu'un champ à traduire, tu vas devoir la jointurer à une autre table de 50000 tuples rien que pour en obtenir qu'un seul ! le serveur WEB va vite saturer (en rapidité).. |
|
|
00
|
|
|
#13 | ||||||
|
En attente de confirmation mail
Inscription : octobre 2002 Messages : 347 ![]() |
Re,
je reviens sur la solution XML que j'ai vu plus haut. Je pense qu'elle très bonne informatiquement parlant mais je pense qu'elle est trop couteuse en ressource. L'utilisation des fonctions XML est lourde (quel soit le langage d'ailleur) à cause du parser (qui fait un travail énorme et long pour vérifier la structure xml..histoire d'arbres.....). Voilà ma solution : tu fais un fichier dictionnaire ainsi genre pour le français : dico_fr.inc.php Code :
où $LANG est un code de langue. Dans ton côté view PHP/HTML, tu écris donc tes champs en accolade ainsi, par exemple un header : Code :
Code :
elle peut même être améliorée en cherchant/remplacant uniquement les chaines {trad_XX} grâce à une expression régulière...Bref ce principe est le même que l'URL rewriting... En plus ça n'encombre pas ton HTML avec des phrases de 4 lignes qui nuisent à ta visiblilité des TAG. qu'en pensez-vous ? |
||||||
|
|
00
|
|
|
#14 |
|
Membre confirmé
![]() ![]() Inscription : mai 2006 Messages : 196 ![]() |
Cela reviens au même tu remplira beaucoup de tableau en PHP et saturera la mémoire. L'XML est un moteur conçu spécialement pour faire ce qu'il fait, et j'ai déjà examiner des fichiers XML de plus de 32 000 entrées et sa prend 2 à 3 secondes sur des bécanes normale pour charger, remplir un tableau de 32 000 index, je crois pas que PHP y arrivera, il te sortira surement une erreur avant (alors que tu es seul à utiliser le serveur, alors imagine si 500 personnes ou plus vienne sur le site en même temps). XML est conçu pour sa :o autant l'utiliser, on peut même créer un générateur de page avec les fonctions DOM :o une page HTML n'est rien d'autre qu'un document XML avec comme élement racine une balise HTML, qui en contient 2 : HEAD et BODY. Tu gère les attributs et nodeValue(le texte dans la balise) et tu génére des page HTML et tu peut même les sauver
|
|
|
00
|
|
|
#15 | |
|
Membre expérimenté
![]() Étudiant Inscription : juillet 2004 Messages : 777 ![]() |
Citation:
Et pour traité 32 000 entrée ca ne prend pas 2 a 3 sec
|
|
|
|
00
|
|
|
#16 |
|
Membre confirmé
![]() ![]() Inscription : mai 2006 Messages : 196 ![]() |
Sa dépend du traitement, moi c'était pour ressortir tous les noms, sous linux avec des petits pross ( < 2Ghz), il mettait 2-3 secondes avant de lancer l'affichage de tous les noms :o, après selon les éléments et le traitement c'est clair que sa mettera plus de temps. Aussi je ne met pas tout dans un seul fichier XML, après tu t'y perd dans les noms des balises.
|
|
|
00
|
|
|
#17 |
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
Et avant d'avoir un truc de 32000 clef de langue, c'est pu un site c'est un monstre :p
|
|
|
00
|
|
|
#18 |
|
En attente de confirmation mail
Inscription : octobre 2002 Messages : 347 ![]() |
oui c'est vrai le XML prend du temps.
imaginez 10000 visiteurs qui font ce traitement de traduction.... pauvre serveur. j'ai pensé aussi à externaliser la traduction sur le client : un fichier javascript qui contiendra le tableau et fera le remplacement. le côté client monovisiteur sera plus apte a faire ça que le serveur en multivisiteur-connexion. |
|
|
00
|
|
|
#19 |
|
Inscrit
Inscription : octobre 2006 Messages : 637 ![]() |
Super idée à part pour le référencement.
__________________
Q: Dois-je haïr et cogner sur Microsoft ? R: Non, vous n'êtes pas obligé. Non pas que Microsoft n'est pas écoeurant, mais il y avait une culture hacker bien avant Microsoft et il y en aura une bien après que Microsoft aura été de l'histoire ancienne. Toute énergie dépensée à haïr Microsoft serait mieux employée par vos compétences et votre passion. Écrivez du bon code, cela brisera suffisamment Microsoft sans polluer votre karma. Comment devenir un hacker ? par Eric Steven Raymond |
|
|
00
|
|
|
#20 | |
|
En attente de confirmation mail
Inscription : octobre 2002 Messages : 347 ![]() |
Citation:
il suffit de faire une page catalogue ou Sitemap basées sur ces fichiers javascript et le tour est joué. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com