PHP-MySQL --> Gestion d'un site multi-langues

PHP-MySQL --> Gestion d'un site multi-langues - PHP - Programmation

Marsh Posté le 06-12-2006 à 21:48:52    

Hello!
 
J'avais une petite question concernant les sites multi-langues.
 
J'ai un site avec un fichier de base pour la langue (lang-fr.php / lang-en.php) qui traduit tous les menus et autres textes statique du site, par contre je sais pas trop comment m'y prendre au niveau de la base de données...
 
En effet, l'utilisateur final peut écrire des articles et les poster sur le site (ceci devrait être fait dans les 2 langues!), mais je vois pas trop comment gérer ma BD....
 

  • soit je met les langues dans les mêmes champs des tables et je parse à l'affichage d'après un caractère très spécial (&ç%ç*ç%& :D)  :pt1cable:  
  • soit j'ajoute des champs à mes tables pour prendre en compte la traduction (genre table "article" -> id, descriptionFR, descriptionEN,....)
  • soit je crée une table pour chaque langue
  • soit ....


Enfin je suis un peu paumé  :sleep: et j'aimerais savoir si il y a une façon meilleure que les autres ;)
 
Merci pour vos réponses.
 
++

Reply

Marsh Posté le 06-12-2006 à 21:48:52   

Reply

Marsh Posté le 06-12-2006 à 21:54:18    

Tu fais une table langue :

id libellé
1  fr
2  en


 
et ta table article :

id langue contenu
1  1      bla bla
2  2      bla bla


 
et donc langue serait une clé étrangère.
Comme ça, ça me parait pas mal.
 
Et puis... : pas de rapport avec php!
 
Edit :
En fait s'il n'y a que deux langues ma solution n'est peut être pas la meilleur. On va dire que ce que je propose convient à site avec un nombre n de langues, avec n suceptible d'augmenter sans limites.

Message cité 1 fois
Message édité par dwogsi le 06-12-2006 à 21:56:57
Reply

Marsh Posté le 06-12-2006 à 22:05:18    

dwogsi a écrit :

Tu fais une table langue :

id libellé
1  fr
2  en


 
et ta table article :

id langue contenu
1  1      bla bla
2  2      bla bla


 
et donc langue serait une clé étrangère.
Comme ça, ça me parait pas mal.
 
Et puis... : pas de rapport avec php!
 
Edit :
En fait s'il n'y a que deux langues ma solution n'est peut être pas la meilleur. On va dire que ce que je propose convient à site avec un nombre n de langues, avec n suceptible d'augmenter sans limites.


 
ah ouais! c'est une jolie solution ca :).
 
par contre si je modifie ca comme ca, je vais etre emmerdé au niveau des formulaires de création d'article non? genre il faudra n champs de description, donc si on a 5 langues, ca va vite etre le gros bordel sur la page d'admin :D

Reply

Marsh Posté le 06-12-2006 à 22:16:06    

Ba avec un peut de javascript tu peux facilement faire un système d'onglet.
 
C'est à dire que sur chaque champs, tu as des onglets, un pour chaque langue. Avec un marqueur sur les onglets (genre une *) indiquant si le champ a été renségné ou pas.

Reply

Marsh Posté le 06-12-2006 à 22:19:41    

dwogsi a écrit :

Ba avec un peut de javascript tu peux facilement faire un système d'onglet.
 
C'est à dire que sur chaque champs, tu as des onglets, un pour chaque langue. Avec un marqueur sur les onglets (genre une *) indiquant si le champ a été renségné ou pas.


 
ah ouais, pas con ca :)
 
pt1 y'a des gens intelligents sur cte planète :D  :jap:  
 
thx, vais voir avec ca :)

Reply

Marsh Posté le 06-12-2006 à 22:22:53    

Ba c'est le système que j'ai proposé à mon patron.
Finalement testé et approuvé, c'est très pratique.

 

Après selon les utilisateurs tu peux aussi définir des limitation sur telle ou telle langue, réduisant ainsi la quantité d'onglets. C'est aussi ce que j'ai eu à faire, comme ça les traducteurs n'ont accès qu'à la langue qu'il traduisent... et ainsi de suite.

 

Tout ça pour dire que quand c'est bien foutu, c'est un système très pratique. Donc je partage l'idée.


Message édité par dwogsi le 06-12-2006 à 22:34:53
Reply

Marsh Posté le 07-12-2006 à 19:50:32    

Sinon moi j'avais aussi fait comme ca:
 
Une table langue qui contenait les noms des tables en fonction de lang
 
TABLE Langue
ID_Langue Table_Articles Table_Categorie  Autre param dépendant du pays etc...
1              Articles_fr      Categorie_fr      Euro
2              Articles_en     Categorie_en     Pound
etc

Reply

Marsh Posté le 08-12-2006 à 04:56:22    

Non désolé mais selon les logiques de modélisation etc. etc. La création d'une nouvelle occurence ne peut en aucun cas entrainer la création d'une nouvelle table. T'as solution me parait très "mauvaise".

Reply

Marsh Posté le 12-12-2006 à 14:48:47    

les données sont ordonnées par pays ca tient une certaine logique.
Il est a noter que les éléments communs sont sur une table articles, et que ca marche très bien.

Reply

Marsh Posté le 12-12-2006 à 14:49:03    

C'est une solution je n'ai pas dit la meilleure

Reply

Sujets relatifs:

Leave a Replay

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