Я смотрю на глобализацию приложения, которое я разработал в asp.net mvc.
В настоящее время я использую файлы ресурсов для хранения сообщений, которые я представляю пользователю (т. Е. Когда я сохраняю что-то в базе данных, и пользователю отображается сообщение «Все, что было правильно сохранено», этот текст сохраняется в файле ресурсов, поэтому что я могу легко локализовать сообщение на другой язык.
У меня вопрос: как это сделать в представлении в целом? Прямо сейчас у меня есть несколько представлений, которые в основном представляют собой HTML с небольшой логикой представления.
Как лучше всего локализовать представление? Я посмотрел здесь:
Подход, описанный в этом посте, кажется интересным, но мне интересно, насколько легко будет поддерживать отдельные представления для каждого языка.
ПРИМЕЧАНИЕ: я не делал большой глобализации или локализации в asp.net в целом, поэтому могут быть некоторые передовые практики из мира, отличного от mvc, которые мне не хватает.





Мы столкнулись с той же проблемой с нашим новым приложением MVC и наше решение здесь. Поддержание отдельных представлений может быть сложной задачей, но поддержание одного и того же представления на разных языках кажется столь же сложной задачей, мы решили, что сохранение всего представления даст нам больше возможностей, которые потребуются для выпуска релиза для азиатских стран.
Надеюсь, это вам поможет.
Используйте App_LocalResources для каждой папки представления и разместите ресурсы для каждого представления в папке и для каждой культуры.
Подробнее здесь.
Вы можете попробовать настроить свои маршруты примерно так:
RouteTable.Routes.MapRoute(
"Globalization",
"{localization}/{controller}/{action}/{id}",
new { localization = "en-us", controller = "Globalization", action = "Index", id = "" }
);
а затем укажите локализацию в качестве параметра ваших действий, так же как идентификатор является параметром.