Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/08/2007, 20h03   #1
Invité de passage
 
Inscription : décembre 2006
Messages : 7
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 7
Points : 1
Points : 1
Par défaut [SQL] site multilingue, quelle solution ?

Bonjours,
Je developpe actuellement un site web pour un hotel il neccessitant 3 langues.
J' ai pensais a diver solution tel que :
l'utilisation de fichier xml parser par php ,
l'utilisation d'une bd mysql php,
l'utilisation de template php.
...
Mais je reste malgres tout perdu car je n'est que tres peu d'experience dans se genre de projet.
Pouriez vous me conseiller sur une conception particuliere ,
merci
simo_web est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2007, 05h48   #2
Membre expérimenté
 
Inscription : mai 2002
Messages : 673
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 673
Points : 532
Points : 532
Les 3 solutions sont viables, et tu peux y ajouter la solution brute par define()...

Chacune a ses avantages et ses incovéniants... En fonction de la puissance du serveur et de la fréquentation, ma préférence personnelle se porte sur :

La solution SQL si la fréquentation est relativement faible ou le serveur puissant. Ca permet de faire des outils de traductions en ligne, et donc de modifier les textes a la volée. En revanche, un texte, une requete ! ça va bouffer de la puissance.

Si la fréquentation est importante ou le serveur limité, je suggère le include de fichier contenant des defines.

Pour ma part, je combine les 2... pour la réalisation du proj, je fait tout en SQL. Lorsque je passe en prod, j'exporte ma base de texte dans des fichiers de define. Concretement, j'ai une fonction GetTexte($id) (ou {texte=id} quand je code en template, qui est convertie en GetTexte($id). Pendant le dev, ça tape direct dans le SQL et j'ai une chier d'outil pour manipuler les textes. Quand c'est fini, je remplace le GetTexte() pour qu'il retourne les define.
gloubi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2007, 14h08   #3
Membre chevronné
 
Avatar de djayp
 
Inscription : avril 2004
Messages : 290
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 290
Points : 617
Points : 617
Envoyer un message via ICQ à djayp
Salut !

Pour ma part j'utilise des fichiers de langues qui contiennent les textes de l'interface. Les textes sont définis dans une variable appelée $lang :
Code :
$lang['ajouter_news']='Ajouter une news';
Pour un site français/anglais, je vais avoir 2 fichiers : fr.php et en.php. Et selon la langue detectée ou choisie par l'utilisateur, le fichier FR ou EN est appelé. Tu peux aussi utiliser un fichier XML si tu préfères.

En ce qui concerne le contenu du site, j'utilise une base de données. Ma table news par exemple contient un champ langue qui permet de spécifier si l'article est rédigée en anglais ou en français. A l'affichage je vais donc choisir seulement les news dont la langue correspond à celle de l'utilisateur.

Si tu utilise une solution avec une base de données pour le texte de l'interface, alors cela prendra effectivement pas mal de ressource et mieux vaut avoir un système de cache en parallèle.

Quand aux templates, ils permettent de séparer le code PHP et le design HTML... Ils sont très pratiques mais pas nécessaire pour un site multilingue.

Bon courage !
A++
__________________
Djay
http://j-place.developpez.com/
djayp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h33.


 
 
 
 
Partenaires

Hébergement Web