本地化实体的最佳方式



我有一个名为 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中)我不知道最好的方法是什么?

谢谢你的帮助。

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

然后,这将使用请求的当前 UI 属性从相应的资源文件中获取Name

最新更新