Локализация имен действий контроллера - PullRequest
1 голос
/ 25 ноября 2008

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

http://www.test.com/Home должно быть http://www.test.com/Accueil

Это тоже хорошо для индексации Google. Более того, я хотел бы быть успокоительным в приложении, поэтому я бы тоже хотел сохранить английское имя, потому что разработчики (даже французы) предпочитают работать с английскими именами.

Я не знаю, возможно ли это и как.

Моей первой идеей должно быть что-то вроде «получить язык браузера», назначить его для CurrentThread.CurrentCulture, чтобы я мог выбрать нужное имя представления.

Большое спасибо за ваши ответы.

Ответы [ 2 ]

4 голосов
/ 25 ноября 2008

вы можете сделать это при регистрации маршрутов в 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

вы должны будете принять решение при запуске приложения (вы можете или не сможете регистрировать маршруты во время выполнения.)

2 голосов
/ 25 ноября 2008

Если вы можете использовать ISAPI, то есть если вы управляете IIS, лучше всего использовать ISAPI, я рекомендую вам Ionics Isapi: http://www.codeplex.com/IIRF

Он реализует более или менее то, что делает мод Rewrite в Apache (перенаправления).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...