Вопрос

Какой была бы наилучшая практика для локализации вашего приложения 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 Роба Коннери.Он делает скринкаст, показывающий один из способов решения проблемы глобализации.

http://wekeroad.com/2008/04/24/mvcstore-part-5

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

Я только начинаю с 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 с определением языка

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top