2011-05-10 19 views
1

私はステータスが異なるエンティティを持っています。私はこのエンティティのためにIdStatusとNameの2つのプロパティを持っています。私はこのように私の状態を取得エンティティのローカライズに最適な方法は?

IdStatus: 1 - Name: Open 
IdStatus: 2 - Name: Closed 
IdStatus: 3 - Name: Deleted 

:このエンティティは、次のように満たされている

あなたが見ることができるように

[HttpGet] 
    private void RetrieveMyStatus(MyViewModel model) 
    { 
     var sta = entities.Status.Select(o => new SelectListItem { Text = o.Name, Value = o.IdStatus.ToString() }).ToList(); 
     model.Status = sta; 
    } 

、今まで、私は英語のみ管理します。しかし今、私はフランス語も管理したいと思っています。

私はこのように私のエンティティを適応しなければならなかったと思う:

IdStatus: 1 - NameEN: Open - NameFR: Ouvert 
IdStatus: 2 - NameEN: Closed - NameFR: Fermé 
IdStatus: 3 - NameEN: Deleted - NameFR: Supprimé 

どのように私は、ユーザーの文化に依存フランス語や英語の名前のプロパティを取得するために私の機能RetrieveMyStatusを適応させることができますか? (sessionWrapper.Cultureに保存されています)何が最良の方法であるかわからないのですか?

ありがとうございました。

答えて

0

Nameの値を強く型付きのResourceに入れます。次に、配信する必要のある他のローカライズされたリソース用のresxファイルを定義します。たとえば、デフォルトがあり、これはResources.resxにあります。フランス語のリソースも提供する必要がある場合は、フランス語の文字列を含むResources.fr.resxファイルを作成します(両方のキーが同じである必要があります)。

これで、現在のUICulture適切なリソースファイルからNameを削除します。

+0

他のエンティティで制約を定義しているため、エンティティを使用してステータスを保存することをお勧めします。あなたが提案する別のソリューションを探しています。たぶんローカライズのための私の実際のソリューションを適応させることができますか?とにかくありがとう。 – Bronzato

+0

最後にこのソリューションを使用しました。欠点は、自分のステータスエンティティにキー(1,2,3)しかなく、説明を取得するためにリソースファイルを調べる必要があることです...ありがとう。 – Bronzato

関連する問題