Как использовать неявную локализацию с MVCSiteMap?

Я пытаюсь использовать локализацию импликов с MVCSiteMap, но она не работает.

Вот мой образец Web.Sitemap:

<?xml version="1.0" encoding="utf-8" ?>

<mvcSiteMap xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-2.0" enableLocalization="true">

<mvcSiteMapNode title="Home" controller="Home" action="Index" changeFrequency="Always" updatePriority="Normal">

    <mvcSiteMapNode resourceKey="Products" title="Products" controller="Products" action="Index">
        <mvcSiteMapNode title="Edit" controller="Products" action="Edit" />
    </mvcSiteMapNode>

    <mvcSiteMapNode title="Categories" controller="Categories" action="Index" />
    <mvcSiteMapNode title="Suppliers" controller="Suppliers" action="Index" />

</mvcSiteMapNode>
</mvcSiteMap>

я имею resourceKey="Products" в приведенной выше карте сайта и соответствующей Products.title в Web.sitemap.resx файл внутри App_GlobalResources папка. Следуйте этим инструкциям: http://msdn.microsoft.com/en-us/library/ms178427(VS.80).aspx

Что мне здесь не хватает?

редактировать

Это было реализовано в наборе изменений 52831.

2 ответа

Решение

Эта проблема была решена в последней версии (на момент написания статьи, версия 2.2.1) MvcSitemapProvider благодаря владельцу проекта, Мартену Баллиауу!

Неявная локализация MvcSitemapProvider практически идентична стандартной SitemapProvider ( см. Практическое руководство . Локализация данных Site-Map). ЕДИНСТВЕННАЯ разница в том, что вместо настройки <siteMap enableLocalization="true"> в самом файле карты сайта, вы должны установить это в Web.Config файл ( как описано здесь).

Вам нужно получить доступ к заголовку пункта меню из файла ресурсов в вашем MvcSiteMapNode

<mvcSiteMapNode title="$resources:MenuLocaliSations,Dashboard" controller="Dashboard" action="Index" changeFrequency="Always" updatePriority="Normal">
Другие вопросы по тегам