J'ai beaucoup d'entités avec 3 colonnes de langue: DescriptionNL, DescriptionFR et DescriptionDE (Description, Info, Article, ... tout en 3 langues).Comment récupérer un modèle de domaine multilingue?
Mon idée était de créer une quatrième propriété Description
qui renvoie la bonne valeur selon le Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName
.
Mais un inconvénient est que lorsque vous avez une méthode GetAll()
dans votre référentiel pour une liste déroulante ou autre chose, vous renvoyez les 3 valeurs à la couche d'application. Donc, le trafic réseau supplémentaire. L'ajout d'un langage de paramètres aux services de domaine pour récupérer les données est également "non fait" selon les experts de DDD. La raison en est que la langue fait partie de l'interface utilisateur, pas du domaine. Alors quelle est la meilleure méthode pour récupérer vos modèles avec la bonne description?
Supprimez les colonnes NL, DE, FR, EN, ... de la base de données et utilisez plutôt un code unique. Créez une table de code avec la version linguistique différente pour ce code. Et laissez la couche Application choisir la version de langue pour le code correspondant? – Filip
C'est exact. Ce que nous avons fait était de demander un jeu de données par nom et version. Cette URL serait mise en cache par le navigateur, donc les performances étaient bonnes. Ce ne sont pas censés être des fichiers énormes de toute façon. Les métadonnées pour chaque ensemble de données ont été stockées localement car vous devez savoir quelle version vous recherchez. Les métadonnées ne seraient jamais mises en cache. –