Cześć wszystkim,
w pracy tworzymy API na .NET 5, które ma zapewnić wsparcie dla wielu języków. Wszystkie komunikaty mają iść przetłumaczone w zależności od lokalizacji z backendu.
Mamy wydzielone moduły, w każdym z nich są też odpowiednie resx. Chcemy uniknąć tworzenia globalnego resx z wszystkimi komunikatami. Komunikaty błędów są dostarczane w odpowiednim języku przez StringLocalizera.
Pytanie natomiast dotyczy ValueObjectów. Powiedzmy, że jest SharedKernel, a w nim VO nienależące do żadnej konkretnej domeny, jak np. PESEL, Email, NIP itd.
Chciałbym, żeby każdy z ValueObjectów miał metodę fabrykującą zwracającą Result.
public class Result<T>
{
T Value {get;}
public bool IsSuccess {get;}
public IEnumerable<Error> {get;}
}
public Email : ValueObject
{
public string Value {get;}
public static Result<Email> Create(string value)
{
...
}
}
W jaki sposób przetłumaczyć w poszczególnych modułach, błędy pochodzące z projektu z współdzielonymi ValueObjectami. Czy w każdym module powinno być dopisane odpowiednie tłumaczenie, czy może dla tych obiektów powinienem utworzyć współdzielony resx.
Czy takie współdzielenie ValueObjectów ma sens? Nie chciałbym pisać w kilku projektach tych samych ValueObjectów z identyczną walidacją.