Лучший способ локализовать сущность? - PullRequest
1 голос
/ 10 мая 2011

У меня есть объект с именем 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, чтобы получить французскийили английское название свойства в зависимости от культуры пользователя?(хранится в sessionWrapper.Culture) Я не понимаю, как лучше?

Спасибо за помощь.

1 Ответ

0 голосов
/ 10 мая 2011

Поместите значения Name в строго типизированный Resource. Затем определите файл resx для других локализованных ресурсов, которые вам могут понадобиться. Например, у вас будет значение по умолчанию, и это будет в Resources.resx. Если вам также необходимо обслуживать французские ресурсы, то создайте файл Resources.fr.resx с французскими строками (ключи должны быть одинаковыми в обоих)

Затем будет использоваться текущая UICulture запроса для получения Name из соответствующего файла ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...