Я пытаюсь локализовать URL своего приложения.К сожалению, на большинстве страниц приведены примеры локализации приложений. Например:
http://localhost/en-US/Home/Index
Это не то, что я хочу.Я хотел бы локализовать URL-адреса следующим образом:
http://localhost/Welcome
http://localhost/Bienvenue [приветственное слово на французском языке]
Культурамне уже удалось управлять cookie-файлом, и он хорошо работает с классом CookieRequestCultureProvider.
Итак, у меня есть эта информация, и локализация на страницах в порядке.
Мне удалось зарегистрировать все маршруты.Я нуждаюсь.Оба примера выше работают и отображают страницу.Благодаря этому:
public void Apply(ApplicationModel application)
{
foreach (var controller in application.Controllers)
{
foreach (var action in controller.Actions)
{
var localizedRouteAttributes = action.Attributes.OfType<LocalizedRouteAttribute>().ToArray();
if (localizedRouteAttributes.Any())
{
foreach (var localizedRouteAttribute in localizedRouteAttributes)
{
var localizedVersions = GetLocalizedVersionsForARoute(localizedRouteAttribute.Name); // GetLocalizedVersionsForARoute contains all routes translated and group by culture.
foreach (var localizedVersion in localizedVersions)
{
if (!action.Selectors.Any(s => s.AttributeRouteModel.Template == localizedVersion.Template))
action.Selectors.Add(new SelectorModel(action.Selectors.First()) { AttributeRouteModel = localizedVersion });
}
}
}
}
}
}
Таким образом, mvc берет последний регистр маршрута в селекторах (если FR, то это FR маршрут).Я не могу управлять другими маршрутами с помощью этого фрагмента кода, потому что он загружается с приложением.И не может работать с динамическим использованием (приложение позволяет изменить язык, когда я хочу).
Заранее спасибо.