Локализация сообщения проверки обязательного поля на основе выбора языка из приложения в MVC

Я разрабатываю одно приложение MVC4, поскольку в моем приложении есть возможность выбора языка, и на основе этого выбранного языка отображаются все метки и сообщения. В этом приложении я поставил одно обязательное поле проверки MVC, и оно будет отображать проверку сообщение только на английском языке. Я создал два разных XML-файла для локализации в папке моего приложения, то есть Resource.resx для английского языка и Resource.de-DE.resx для немецкого языка. Я использовал следующий код в своем классе модели:

    [Required(ErrorMessageResourceType = (typeof(MyFolder.MyResource.Resource)), ErrorMessageResourceName= "FromDateRequiredMessage")]
    [Display(Name = "FromDate", ResourceType = typeof(MyFolder.MyResource.Resource))]
    public DateTime FromDate { get; set; }

Итак, здесь у меня есть XML-файл Resource.resx, и в нем есть ключ FromDateRequiredMessage, который является тем же ключом, что и в немецком файле Resource.de-DE.resx, но с другим значением. Кроме того, я внес следующие изменения в свой веб-сайт. конфигурационный файл для глобализации:

<globalization enableClientBasedCulture="true" culture="auto" uiCulture="auto"/>

Итак, я хочу, чтобы, когда я выбираю немецкий язык в своем приложении, он должен показывать мне ошибку проверки на немецком языке, но здесь он будет показывать мне сообщение проверки только на английском языке.

Итак, что я могу сделать для этого? Пожалуйста, помогите мне.




Ответы (3)


Пожалуйста, используйте метод Application_PreRequestHandlerExecute() в Global.asax файле вашего приложения. Этот метод будет выполняться перед любым запросом страницы или ее проверкой.

Также установите в этом методе текущее значение культуры.

person Purnil Soni    schedule 06.09.2013

Простой ответ> нет ничего плохого!

когда вы помещаете культуру = auto в web.config, это работает так, ваше приложение будет смотреть на заголовок входящего запроса и искать принимаемые языки и их порядок, поэтому в одном запросе в нем у вас есть что-то вроде En - Fa ... приложение выберет первый и установит для него культуру и культуру пользовательского интерфейса, поэтому перейдите в языковые настройки браузера и измените порядок языков для тестирования вашего приложения.

person Milad Hosseinpanahi    schedule 04.09.2013

Для этого вам необходимо установить культуру. Таким образом, пользователю будет предоставлен выбор в раскрывающемся списке и т. Д., В котором они явно выбирают немецкий, английский и т. Д., Это изменит ваш сайт на yoursite / En или yoursight / Gr и т. Д. Эта статья хорошо объясняет и дает пример кода. http://www.codeproject.com/Articles/207602/Creating-a-Bilingual-ASP-NET-MVC3-Application-Part часть «Добавление поддержки пользовательского интерфейса для переключения языков», я считаю, имеет то, что вам нужно.

person Somedeveloper    schedule 04.09.2013