Я столкнулся с проблемой. Я хотел бы локализовать имена моих действий в моем проекте, чтобы французские люди могли иметь чистые URL-адреса с французскими именами.
http://www.test.com/Home должно быть http://www.test.com/Accueil
Это тоже хорошо для индексации Google. Более того, я хотел бы быть Restful в приложении, поэтому я бы тоже хотел сохранить английское имя, потому что разработчики (даже французы) предпочитают работать с английскими именами.
Не знаю, возможно ли это и как.
Моя первая идея должна заключаться в том, чтобы получить язык браузера, назначить его CurrentThread.CurrentCulture, чтобы я мог выбрать желаемое имя представления.
Большое спасибо за ответы.





это можно сделать, зарегистрировав маршруты в global.asax.
если обычно у вас есть это:
routes.MapRoute("Catalog-Brands", "catalog/brand/", new {controller = "Brand", action = "Index", isActive = true});
Вы тоже можете сделать это (я не знаю французского, извините)
routes.MapRoute("Catalog-Brands-French", "french-catalog/french-brand/", new {controller = "Brand", action = "Index", isActive = true});
вы можете сделать их все доступными глобально или иметь отдельные:
public static void RegisterUsRoutes
public static void RegisterFrenchRoutes
вам придется принимать решение при запуске приложения (вы можете или не сможете регистрировать маршруты во время выполнения.)
Если вы можете использовать ISAPI, то есть если вы контролируете IIS, лучше всего использовать ISAPI, я рекомендую вам Ionics Isapi: http://www.codeplex.com/IIRF
Он более или менее реализует то, что делает мод Rewrite в Apache (перенаправления).