Oui comme tu le dis AB c'est surtout une question d'utilisation.
Pour ma part on m'a appris qu'il ne fallait pas utiliser un stockage en bdd pour une donnée statique (exemple tout bête pour illustrer : stocker un menu HTML dans une table, cela n'a aucun sens...).
Or les traductions ne sont pas sujettes à être changées tous les jours, à la rigueur un ajout de nouvelles mais cela ne justifie selon moi aucunement l'utilisation d'une bdd.
Evidemment je parle pour un site avec CMS. Et dans le cas d'un CMS fonctionnel il doit n'y avoir aucune limitation (ou le moins possible) concernant la modification, ou l'organisation des menus et du contenu.
Or si je reprend l'exemple de
ce site, le menu des pages est différent suivant la langue choisie (la page "crédit d'impôt" ne concernant que le système français, elle n'existe pas dans les autres langues) et sur le même principe certaines rubriques de produits peuvent ne pas apparaître dans certaines langues car tous les produits ne sont pas destinés à l'exportation. Par ailleurs chaque page peut être déplacée à tout moment dans une rubrique de page, ou dans le pied de page, l'ordre d'affichage des pages est également paramétrable dans les menus et les sous-menus, et l'espace "Distributeur" fait apparaître de nouvelles pages dédiées etc.
Tout ça pour dire que l'utilisation d'une bdd étant nécessaire pour gérer le système d'affichage et de droits, je ne vois pas en quoi ça me gênerait de faire une jointure pour rapatrier la langue à traduire en même temps que je fais la requête sur les menus

C'est le contraire qui serait lourd.
Maintenant pour un site statique, évidemment on va pas créer une bdd pour faire la traduction. Faut juste s'adapter aux moyens qu'on utilise. Mais si l'on utilise abondamment la bdd pour tout gérer ce n'est pas une hérésie de l'utiliser aussi pour les traductions car cela peut apporter des facilités pour l'administrateur sans ralentir les performances d'affichage du site
