ok. grosso modo, c'est mal foutu...
Essaye d'abord de rechercher sur le forum, il y a des topics qui parlent de problèmes de traductions, avec des solutions efficaces.
Pour la table traduction, habituellement, les messages sont numérotés (par ex num -> fr: 1 -> stylo, 2 -> dvd), ou nommés (par ex nom -> trad.en: stylo -> pen, dvd -> dvd), donc dans trois colonnes:
- langue
- nom_message
- traduction
Avec des indexs sur nom_message, et langue.
Si tu garde des messages numérotés, pour la table utilisateur, puisque choix1 & choix2 vont contenir des nombres, utilise un type <<int>> au lien de varchar, ce sera plus efficace, et plus clair.
Remarque générale, concernant la table traduction: si tu as des champs numérotés dans une table, comme `1`, `2`, etc... alors la table est très certainement mal conçue. Ces numéros devraient se retrouver dans la valeur d'un champs et non dans le nom du champs.
Remarque générale, jointure:
Pour faire une jointure, tu doit avoir à un moment donné, un select sur deux tables, et une condition de jointure. Cette condition de jointure détermine quels sont les champs de chacune des tables qui doivent être égaux (champs-clés), pour former une ligne d'une nouvelle table (vue de jointure) contenant tout ou partie des champs des deux tables originales.