Modelli DDD e localizzazione?

6

Diciamo che ho un Book che ha title e description localizzati in un numero qualsiasi di lingue.

La localizzazione conta solo per es. amministratori, perché gli utenti scelgono la loro localizzazione e devono vedere solo la loro localizzazione, non tutti. Gli amministratori, tuttavia, devono disporre del supporto completo per la gestione della localizzazione.

Avrei due entità per questo: Book - che è localizzata per l'utente. Il repository sarebbe a conoscenza della localizzazione, quindi non abbiamo nemmeno bisogno di passare la localizzazione corrente tutto il tempo.

Quindi, avrò un'altra entità: Book2 (sì, ha bisogno di un nome migliore) che conterrà un Map<Locale, String> invece di una semplice stringa per un title . Questa entità verrebbe utilizzata nel contesto "admin".

Inoltre, non vedo un modo per rendere entrambi i libri dello stesso tipo.

Questo sarebbe un buon approccio? Qualche saggezza su questo?

    
posta lawpert 12.11.2014 - 18:10
fonte

1 risposta

3

Ho usato proprietà complesse per questo tipo di situazione, con la seguente struttura:

TranslatedValue
    Value
    TranslationList
        Translation1
            Locale
            Value
        Translation2
            Locale
            Value
        Translation3
            Locale
            Value
...

Il Value all'interno di TranslatedValue viene riempito con il valore per la locale dell'utente corrente. Il TranslationList contiene tutte le transizioni per le versioni locali.

In questo modo, puoi facilmente controllare quali valori vuoi caricare, e semplice accesso sia alla locale corrente che alle altre impostazioni locali:

MyBook.Title.Value // Gives the value for the current locale
MyBook.Title.Translations["french"].Value // Gives the value for the french locale

Spero che questa idea ti aiuti.

    
risposta data 12.11.2014 - 18:31
fonte

Leggi altre domande sui tag