Как локализовать ASP.NET Приложение MVC?
-
08-07-2019 - |
Вопрос
Какой была бы наилучшая практика для локализации вашего приложения ASP.NET MVC?
Я хотел бы осветить две ситуации:
- развертывание одного приложения в IIS, которое будет обрабатывать несколько языков
- развертывание на одном языке / приложении.
В первой ситуации вы должны использовать какую-то вещь, основанную на представлении, например, ~/ View / EN, ~/ View / FI, ~/ View / SWE или что-то другое?
Как насчет второго случая, просто настроить приложение на основе Web.config и указать этим разным языкам разные URL-адреса?
Решение
Вы также можете взглянуть здесь ASP.NET Полное руководство по локализации MVC 2 и ASP.NET Валидация модели MVC 2 С Локализацией эти сведения помогут вам, если вы работаете с ASP.NET MVC 2.
Другие советы
Вы бы локализовали свое ASP.NET Приложение MVC почти так же, как вы бы локализовали классическое ASP.NET Приложение веб-формы.
Вы бы не использовали разные страницы / представления для каждого языка, но каждая страница поддерживала бы несколько языков, используя вспомогательные сборки.
Вы можете посмотреть на Запись в блоге Мэтта Хоули для получения дополнительных объяснений и примеров.
К сожалению, исходный код Мэтта Хоули не работает в релизной версии ASP.NET MVC.Ознакомьтесь с обновленным сообщением: http://blog.eworldui.net/post/2008/10/ASPNET-MVC-Localization-via-View-Engines.aspx
В целом, процесс локализации в VS 2008 проходит не так гладко / ASP.NET Мир MVC отличается от традиционных веб-форм. http://www.guysmithferrier.com/post/2009/05/Localizing-ASPNET-MVC.aspx
Взгляните на проект MvcStore Роба Коннери.Он делает скринкаст, показывающий один из способов решения проблемы глобализации.
Я никогда не был убежден в том, что нужно обрабатывать локализацию внутри формы, как предлагает Элайджа, - разная длина и направления могут привести к очень сложным или по-разному выглядящим формам.
Я только начинаю с MVC, но, используя метод развязки, вы хотели бы использовать один и тот же контроллер независимо от языка (рассматривая язык просто как представление) - тогда это дало бы вам / Controller / Action / language / form
Существует хороший учебник с недавним обновлением о том, как локализовать asp.net приложение mvc, охватывающее все аспекты, включая локализацию DisplayName, проверку, использование маршрутизации (сохранение названия языка в URL), проблемы с кешем вывода и так далее... Блог Алекса Адамяна - Пока моя клавиатура тихо плачет
На самом деле мы пошли совершенно по-другому, переопределив DataAnnotationsMetadaDataProvider.Там вы можете убедиться, что значения атрибута DisplayNameAttribute переведены на правильный язык.На самом деле вы могли бы даже избавиться от этого атрибута и разрешить его по именам полей, только если это могло бы как-то помочь.
Я написал эту статью некоторое время назад.Он использует пользовательский механизм просмотра.http://blog.oimae.com/2011/02/20/cultured-view-engine-for-mvc/
И еще одно руководство по другому решению
Учебник:Создать ASP.NET Локализация MVC с определением языка