Version complète: sur le forum Webmaster Hub : conception site multilingue
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
hska
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 & lang=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=accueil&lg=fr


En Anglais :
http://ns2551.ovh.net/~phpmyvis/index.php?part=accueil&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 :



Merci encore pour votre dévouement.
Minio
TheRec
A mon avis c'est effectivement une problème dans la modélisation de la base de données.

Dans la table catégorie il serait préférable d'avoir pour chaque catégorie un champ pour chaque langue. C'est à dire Nom_Categorie_FR, Nom_Categorie_EN, ... et traduire le nom de la catégoire au moment ou tu en ajoute une.

Ensuite tu utilises l'ID de la catégorie en tout temps, puis en fonction du paramètre "lang" tu utilises le champs Nom_Categorie_XX correspondant.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.