Как использовать неявную локализацию с MVCSiteMap? - PullRequest
6 голосов
/ 23 октября 2010

Я пытаюсь использовать локализацию импликов с 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

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

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

Это реализовано в changeset 52831 .

Ответы [ 2 ]

6 голосов
/ 08 ноября 2010

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

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

2 голосов
/ 24 октября 2010

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

<mvcSiteMapNode title="$resources:MenuLocaliSations,Dashboard" controller="Dashboard" action="Index" changeFrequency="Always" updatePriority="Normal">
...