Vous pouvez résoudre ce problème de différentes manières :
Étendez Zend_Translate_Adapter pour créer le vôtre. Tous les nouveaux adaptateurs sont uniquement responsables de la sortie des traductions de la source. Autrement dit, vous n'auriez qu'à récupérer les traductions de la base de données. Regardez d'autres adaptateurs et voyez comment ils sont implémentés.
Récupérez les données de la base de données et transmettez-les à Zend_Translate_Adapter_Array
Utilisez Zend_Translate_Adapter_Csv ou Ini. Comme il y aurait plus de lecture que d'écriture sur les traductions, cette solution réduirait le nombre de requêtes à la base de données. Lorsque le client ajoute une nouvelle langue ou en modifie une existante, il suffit de l'écrire dans un fichier, pas dans la base de données.
Si vous décidez d'utiliser l'adaptateur de base de données, vous pourriez peut-être "tagger" d'une manière ou d'une autre les traductions, de sorte que sur la page d'accueil vous ne récupériez que les traductions de la page d'accueil, sur la page de contact uniquement les traductions de la page de contact...
HT !