本地化实体的最佳方式?

时间:2011-05-10 16:54:46

标签: asp.net asp.net-mvc-3

我有一个名为Status的实体,我存储了不同的状态。我有这个实体的两个属性: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以获取法语或英语的Name属性? (存储在sessionWrapper.Culture中)我不知道最好的方法是什么?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

Name值放在强类型Resource中。然后为您可能需要提供的其他本地化资源定义resx文件。例如,您将有一个默认值,这将在Resources.resx中。如果您还需要提供法语资源,请创建一个包含法语字符串的Resources.fr.resx文件(两个键中的键必须相同)

然后,这将使用请求的当前UICulture从适当的资源文件中获取Name