2017-06-21 45 views
1

我有一個物理參數(如壓力,電壓等)的列表,可供所有租戶(多租戶應用程序)的所有用戶訪問。現在,我需要一種方法來向不同的用戶顯示適當的語言。DDD中的本地化

參數是一個聚合根:

class Parameter 
{ 
    public string Name { get; } 
    public string Description { get; } 
} 

我需要一種方法來本地化名稱和說明。我的第一個方法是這樣的:

class Parameter 
{ 
    public IDictionary<Locale, NameAndDescription> Info { get; } 
} 

但我覺得這是不正確的。

此外,管理員將希望在UI中編寫不同的翻譯。但用戶只希望看到選定的翻譯(如果需要可切換)。

我應該如何解決這個問題?我應該從域中徹底刪除它嗎?我的應用程序層是否有方法來編寫適當的翻譯(便於管理員)?我應該從上下文中解析當前的語言環境還是應該在點擊端點時將它傳遞給URI/DTO?任何其他信息在DDD本地化將不勝感激。

回答

2

本地化應該在另一個bounded context,可能使用CRUD架構實施,因爲沒有需要保護的業務規則/不變量。然後,在UI中,使用訪問bounded context的翻譯方法,parameters的名稱將根據其區域設置和/或管理設置顯示給用戶。

換句話說,本地化在您的核心域內似乎沒有任何作用,它們不參與保護域不變量。