В настоящее время я пытаюсь выяснить, как локализовать сообщения об ошибках, генерируемые MVC. Позвольте мне в качестве примера использовать связыватель модели по умолчанию, чтобы я мог объяснить проблему.
Предполагается, что у меня есть форма, где пользователь вводит свой возраст. Затем пользователь вводит «десять» в форму, но вместо получения ожидаемой ошибки
«Возраст должен быть от 18 до 25 лет».
сообщение
"Значение 'десять' недопустимо для возраста."
отображается.
Свойство возраста объекта определено ниже:
[Range(18, 25, ErrorMessageResourceType = typeof (Errors),
ErrorMessageResourceName = "Age", ErrorMessage = "Range_ErrorMessage")]
public int Age { get; set; }
После некоторого копания я замечаю, что этот текст ошибки происходит из System.Web.Mvc.Resources.DefaultModelBinder_ValueInvalid
в файле MvcResources.resx
.
Теперь, как можно создавать локализованные версии этого файла?
Как решение, например, я должен загрузить исходный код MVC и добавить MvcResources.en_GB.resx
, MvcResources.fr_FR.resx
, MvcResources.es_ES.resx
и MvcResources.de_DE.resx
, а затем скомпилировать свою собственную версию MVC.dll
?
Но мне не нравится эта идея. Кто-нибудь еще знает лучший способ?