У меня есть много сущностей с 3 языковыми колонками: DescriptionNL, DescriptionFR и DescriptionDE (Описание, Информация, Статья, ... все на трех языках).Как получить многоязычную модель домена?
Моя идея состояла в том, чтобы создать четвертое свойство Description
, которое возвращает правильное значение в соответствии с Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName
.
Но недостатком является то, что, когда у вас есть метод GetAll()
в вашем репозитории для выпадающего списка или чего-то еще, вы возвращаете 3 значения на прикладной уровень. Такой дополнительный сетевой трафик.
Добавление языка параметров в службы домена для извлечения данных также не выполняется в соответствии с экспертами DDD. Причина в том, что язык является частью пользовательского интерфейса, а не домена. Итак, какой лучший способ получить ваши модели с правильным описанием?
Оставьте столбцы NL, DE, FR, EN, ... в базе данных и вместо этого используйте уникальный код. Создайте таблицу кода с другой языковой версией для этого кода. И пусть прикладной уровень выбирает версию языка для соответствующего кода? – Filip
Это правильно. Мы сделали запрос набора данных по имени и версии. Этот URL-адрес будет кэшироваться браузером, поэтому производительность будет прекрасной. В любом случае, они не должны быть огромными файлами. Метаданные для каждого набора данных были сохранены локально, так как вам нужно знать, какую версию вы используете. Метаданные никогда не будут кэшировать. –