conception site multilingue

conception site multilingue - PHP - Programmation

Marsh Posté le 30-01-2005 à 22:33:57    

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)
Catégorie
 
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


Message édité par yvesle le 30-01-2005 à 23:29:59
Reply

Marsh Posté le 30-01-2005 à 22:33:57   

Reply

Marsh Posté le 30-01-2005 à 22:55:21    

Bon avant tout, j'ai lu 5 fois (oui, quand même) la question et je ne suis toujours pas sûr de l'avoir comprise...
 
Par exemple, où sont les différentes versions "affichables" d'une catégorie ? Parce que je suppose qu'un catégorie a un nom ?

Reply

Marsh Posté le 30-01-2005 à 23:33:30    

Merci Narceroth!
En effet excuse moi, j'ai oblié de vous mentionner le nom d'une catégorie.
Une catégorie a une identifiant unique, clé primaire et un nom  
 
C'est un peu difficile de vous expliquer, est ce que vous voulez bien me donner votre email pour que je vous envoie le schéma relationel de la base de données en pièce jointe.
Merci de votre aide

Reply

Marsh Posté le 30-01-2005 à 23:42:09    

Voilà qui est fait, en pm, paske bon :D

Reply

Marsh Posté le 31-01-2005 à 00:06:42    

J'ai compris la technique, je vous envoie le schéma relationnel de ma base de données.
http://www.saintdefendent.org/image.jpg

Reply

Marsh Posté le 31-01-2005 à 00:48:32    

Bon, la solution de facilité pour ne garder qu'un seul id pour la catégorie quelque soit la langue, ça semble être une table categorie_langue disons.
 
Categorie ne conserve plus que id et id_theme
Categorie_langue récupère un id unique, id_lang et nom_categorie.
 
A partir de ça, tu dois pouvoir retrouver toutes les versions "langue" d'une catégorie et sélectionner la bonne avec id_lang tout en ayant une seule ligne dans la table categorie pour toutes les langues
 
(hum, je suis pas clair, il est temps que j'aille dormir :D)

Reply

Marsh Posté le 31-01-2005 à 22:30:23    

Merci Naceroth,
D'après ton explication il faut que je crée une encore 3 tables pour mon application?
- table catégorie-langue
- table theme-langue
- tableproduits langue?
Merci
En ce cas là, la tabe catégorie langue est relié à la table catégorie par quelle relation?


Message édité par yvesle le 31-01-2005 à 22:34:03
Reply

Marsh Posté le 31-01-2005 à 23:58:24    

mmmh oui, pour rester simple.
 
Et entre catégorie et catégorie-langue, c'est du 1:n.

Reply

Marsh Posté le 07-02-2005 à 22:40:55    

y a pas d'autres soluce ?  
etrangemetn je croyais que ca existait aussi sans passer par une Bdd !

Reply

Marsh Posté le 08-02-2005 à 01:17:46    

Bah oui sûrement que ça peut le faire aussi sans bdd, c'était juste pas la question de départ :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed