2011-05-10 92 views
1

我有一個名爲狀態的實體,我存儲不同的狀態。我有這個實體的兩個屬性:IdStatus和Name。本地化實體的最佳方法?

這個實體充滿這樣的:

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 2011-05-10 17:09:26

+0

最後我用這個解決方案。缺點是我只有一個關鍵(1,2,3)在我的狀態實體中,並且需要查看資源文件以獲取描述...謝謝。 – Bronzato 2011-05-11 07:09:42