Как использовать неявную локализацию с 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">