2011-05-10 100 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