Mise en place d'une version anglaise, comment procéder ?

Eléphant du PHP | 117 Messages

05 déc. 2008, 11:29

Bonjour à tous, je suis en train de préparer l'ultime étape de mon site Internet d'E-commerce et je veux mettre une version anglaise en ligne, mon problème est de savoir comment m'y prendre, je m'explique :
Pour l'instant j'ai des produits, des catégories, sous catégories, ...
Ce que j'ai commencé à faire, c'est que pour un produit, j'ai ajouté plusieurs champs dans la table produit de ma bdd pour la traduction anglaise du type nom_en, description_en, ...
Je crois que c'est la meilleure solution dans mon cas puisque seul le nomet la description doivent être traduits.
J'ai fait de même pour mes catégories et sous catégories.
Déjà je ne sais pas si c'est super au niveau de la base de mettre, francais + anglais dans la même table, n'aurais-je pas dû séparer anglais et français, ça c'est une question de modélisation mais bon je la pose quand même puisque je n'ai jamais eu à faire de site multilingue.

Ensuite ma deuxième question et celle qui est la plus importante, quand je vais mettre la version anglaise en place, dois-je duppliquer le site physiquement (je copie le dossier "fr" dans le dossier "en" et j'appelle les champs anglais) ou alors y a t-il un moyen de faire ça avec la base de données dans le genre, j'ai une unique version de mon site et quand un étranger vient sur le site, j'apelle les champs anglais sinon j'appelle les champs français ?

Qu'en pensez-vous ?

Merci d'avance pour vos réponses.

Eléphant du PHP | 86 Messages

05 déc. 2008, 14:23

Bonjour,

Je pense qu'il serai plus propre de créer 2 table la première composé par exemple comme cela

Code : Tout sélectionner

|id|prix|quantité|
et la seconde comme cela

Code : Tout sélectionner

|id|id_prix|langue|nom|description|
tu met donc dans la première les infos qui ne change pas concernant le produit et dans la seconde les informations qui change en fonction de la langue.

Pour ce qui est du site du ne doit pas en créer deux un seul suffit. tu stock dans une session les infos concernant la langue du visiteur par ex
$_SESION['langue'] = "fr";
puis au moment de créer ta requete tu met
$select = "SELECT * FROM *** WHERE langue = '".$_SESION['langue']."'";
Voila une piste pour ton code.

Bonne journée.

Eléphant du PHP | 117 Messages

05 déc. 2008, 17:18

Merci pour ta réponse.
Je vais tenter de faire comme ça.