Conception d'un site multilingue

Fermé
minio - 30 janv. 2005 à 22:32
 minio - 31 janv. 2005 à 00:36
Bonsoir à vous tous,

Je souhaite de crée une application multilingue (français, anglais) pour un catalogue de produits.
Mais je n’y arrive pas. Je suppose que mes erreurs proviennent de la conception de ma base de données MySql.
J’ai besoin de vos conseils, aidez moi s’il vous plaît !

Mon problème : je n'arrive pas à créer quelques choses comme ça :

http://www.monsite.com/index.php?id_cat=3&la
ng=en

à savoir que si on change de langue en "fr", on garde la MEME page index.php et la MEME id_rub=3 et seul le contenu de la page index sera traduit automatiquement en Français.

J'ai quand même réussit à faire une autre application ci-jointe :

http://www.monsite.com/index.php?cat=2&lang=
en

Mais quand je change la langue en "fr" je suis obligé de changer AUSSI la catégorie pour que ça marche sinon, rien ne sera affiché! (ce qui est tout à fait logique, car selon ma base de données, chaque catégorie a un identifiant unique)
Par exemple pour afficher les catégories en français, je suis obligé de changer "cat=7&lang=fr". Ce qui n'est pas pratique du tout.

Alors, je pense que j'ai mal conçu ma base de données, n'est pas?

Car j’ai vue sur le site multilingue PhpMyVisite http://ns2551.ovh.net/~phpmyvis/index.php

L’url de la rubrique ACCUEIL en Français :
http://ns2551.ovh.net/~phpmyvis/index.php?part=a
ccueil&lg=fr

En Anglais :
http://ns2551.ovh.net/~phpmyvis/index.php?part=a
ccueil&lg=en

Comme vous avez constaté, on reste sur la même page Index.php,
Et on garde la même variable « part=accueil »
Seule la variable langue « lg » change en Anglais « en »

En effet, je souhaite de créer mon petit site comme cet exemple mais je me casse la tête, je n’y arrive pas.

Est-ce que vous voyer une erreur dans ma base de données ?

Voici ma base (je simplifie) :

Il y a 4 tables :

LANGUE :
Lang (clé primaire, char=2)

THEME :
ID (clé primaire numérique)
Lang (clé étrangère, relié à la table LANGUE, relation un à plusieurs)
Thème

CATEGORIE :
ID
Lang (clé étrangère, relié à la table LANGUE, relation un à plusieurs)
Thème (clé étrangère, relié à la table THEME, relation un à plusieurs)

PRODUIT :
ID
Lang (clé étrangère, relié à la table LANGUE)
Catégorie (clé étrangère, relié à la table THEME, relation un à plusieurs)
Nom_produit

Merci encore pour votre dévouement.
Minio
A voir également:

4 réponses

kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 5 février 2025 1 526
30 janv. 2005 à 23:14
Salut,

Et si tu essayais, pour la table produit:
PRODUIT :
ID
Catégorie (clé étrangère, relié à la table THEME, relation un à plusieurs)
Nom_produit
texte_en (juste à titre d'exemple, on va dire que dans texte tu as le prix, les caractéristiques du produit etc... je mets tout en bloc dans un champs pour l'exemple)
texte_fr


Maintenant imagine que tu reçois l'url http://monsite.net/index.php?cat=1&lg=fr

Eh bien si $_GET['lg'] est égal à fr alors tu vas chercher le texte_fr du produit, si $_GET['lg'] est égal à en alors tu vas chercher le texte_en.
Ensuite, personnellement, je supprimerais la table LANGUE si, comme je le pense, elle ne contient qu'un champs de clé_primaire avec deux seules combinaisons possibles : en et fr. Je ne vois pas à quoi sert cette table (quelle relation établit-elle?)

J'aurais plus fait un truc du genre: dans le fichier php on reçoit les paramètres du langage, dans la base de données on stocke dans une table lambda le texte en français et le texte en anglais dans deux champs différents, on choisira tel ou tel champs en fonction de la langue choisie dans le script php.

Ce n'est que mon avis, et je ne te dis pas que c'est la solution : je n'ai pas vraiment la charpente de ton site devant moi, ce n'est pas mon metier, il ya probablement plusieurs solutions, et quand bien même ce serait une solution il ya peut être plus efficace.

:-D

En gros je ne fais que te murmurer mon avis sans conviction :-)

PS: Sans compter que je ne sais pas à quoi servent les tables THEME, CATEGORIE et je ne sais comment tu stockes les données des produits.....
0
c'est un peu difficile de vous expliquer par écrit.
il vaut mieux une image que des longs dicours.
Est ce que vous voulez bien me donner votre adresse email pour que je vous enverrai le schéma relationnel de ma base de données.
merci de votre dévouement
Minio
0
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 5 février 2025 1 526
30 janv. 2005 à 23:59
Euuh, je ne sais pas si j'aurais le temps de me pencher sérieusement dessus :-|
0
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 5 février 2025 1 526
31 janv. 2005 à 00:17
Mets ce shema en ligne et poste le lien ici, moi ou quelqu'un d'autre pourra toujours y jeter un coup d'oeil :-)
0
Voici ma base de données
<img src="http://www.saintdefendent.org/image.jpg">
Merci de votre dévouement
minio
0