2017-06-21 1 views
1

すべてのテナント(マルチテナントアプリケーション)からすべてのユーザーがアクセスできる物理的パラメータ(圧力、電圧など)の一覧があります。今、適切な言語をさまざまなユーザーに表示する方法が必要です。DDDでのローカライゼーション

パラメータは、集約ルートです:

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

私は名前と説明の両方をローカライズする方法が必要です。私の最初のアプローチはこれでした:

しかし、私はどういうわけかこれが正しくないと感じます。

また、管理者はUIに異なる翻訳を書きたいと思うでしょう。しかし、ユーザーは選択された翻訳のみを見たい(必要に応じて切り替え可能)。

この問題をどのように解決すればよいですか?ドメインから完全に削除する必要がありますか?私のアプリケーション層に、適切な翻訳を書くための方法(管理者を助ける)がありますか?コンテキストから現在のロケールを解決する必要がありますか、またはエンドポイントに当たったときにURI/DTOに渡すことを期待する必要がありますか? DDDでのローカリゼーションに関するその他の情報は高く評価されます。

答えて

2

ローカライゼーションは別のbounded contextにする必要があります。これは、保護が必要なビジネスルール/インバリアントがないため、おそらくCRUDアーキテクチャを使用して実装されています。次に、UIには、にアクセスする変換メソッドを使用して、parametersという名前がロケールおよび/または管理設定に従ってユーザーに表示されます。

他の言い方をすれば、ローカリゼーションはコアドメイン内では何の役割も果たしていないようだが、ドメイン不変物の保護には参加していない。

関連する問題