24-12-2008, 12:41 AM
(Modification du message : 24-12-2008, 12:42 AM par Sephi-Chan.)
Dans ce cas, je te proposes de doubler chaque table contenant des informations à traduire.
Par exemple, une table objets, et une table objets_i18n, avec des requêtes comme :
Ainsi, c'est simple : si la traduction existe pour la langue demandée, elle est utilisée, sinon, la langue par défaut (utilisée dans la table objets) est utilisée.
Ensuite, sur ce modèle de requêtes, tu peux faire une seconde condition pour savoir si tu récupères nom_singulier, nom_pluriel ou nom_neutre.
Sephi-Chan
Par exemple, une table objets, et une table objets_i18n, avec des requêtes comme :
SELECT O.id,
IF(O2.nom IS NULL, O.nom, O2.nom) AS nom
FROM objets O
LEFT JOIN objets_i18n O2 ON O2.id = O.id AND O2.langue = 'en';
Ainsi, c'est simple : si la traduction existe pour la langue demandée, elle est utilisée, sinon, la langue par défaut (utilisée dans la table objets) est utilisée.
Ensuite, sur ce modèle de requêtes, tu peux faire une seconde condition pour savoir si tu récupères nom_singulier, nom_pluriel ou nom_neutre.
Sephi-Chan