Sitemap的本地化

 

转自:http://9host.cn/asp.net/20074730308.html

 

本地化站点地图数据

  存储在sitemap文件中的导航数据可能需要进行本地化(localize)。<siteMapNode>元素中的URL、Title和Description属性也可以本地化。此外,开发者放置在<siteMapNode>元素中的任何自定义属性也可以本地化。

  下面的示例包含了英语和法语的本地化文本。它的web.sitemap文件使用两种类型(隐式的和显式的)的本地化表达式来实现这种功能。Sitemap文件在根siteMap元素中使用了enableLocalization=true就表明它使用了本地化数据。

  在示例的web.sitemap中,除了第一个节点之外,所有的节点都有隐式的资源表达式。它的语法类似resourceKey="Autos"。当XmlSiteMapProvider根据web.sitemap文件中的信息检索SiteMapNode的时候,它根据SiteMapNode属性的名称、resourceKey和为提供程序配置的siteMapFile属性的值来检索字符串资源。使用示例中的"Autos"节点的时候,提供程序(provider)会根据当前的文化来查找以"web.sitemap"开头的资源文件。这意味着,对于一个发送法语头信息的浏览器来说,提供程序会查找名称为web.sitemap.fr.resx的资源文件。在这个资源文件中,提供程序会依据resourceKey + "." + [SiteMapNode属性名]来查找资源键。例如,把"Autos"节点的Title属性当作例子,提供程序会在web.sitemap.fr.resx资源文件中查找键为Autos.Title的资源。

  显式表达式使开发者对包含本地资源的文件和资源键(resource key)的名称有更强的控制能力。在示例web.sitemap中,第一个<siteMapNode>元素使用了显式资源表达式。显式表达式在每个属性上指定。第一个<siteMapNode>元素的Title属性使用了显式表达式。显式表达式必须以$resource:开头。在这个标识符之后,开发者必须提供资源文件的根名称和资源键。开发者可以选择提供一个默认值。在例子中,表达式$resources: Title, MyTitle , Home表明提供程序应该查看以"Title"开头的资源文件。对于发送法语头信息的浏览器开说,提供程序会查找Title.fr.resx资源文件。接下来提供程序查看键为MyTitle的资源。如果提供程序无法找到这种资源,它会把字符串"Home"作为默认值。


  Web.sitemap的内容

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" enableLocalization="true">
<siteMapNode url="~/Default.aspx" title=" $resources: Title, MyTitle , Home" description="Default page description when no localized value exists." >
<siteMapNode url="~/Category.aspx" resourceKey="Category">
<siteMapNode title="Autos" description="Autos" url="~/Autos.aspx" resourceKey="Autos" />
<siteMapNode title="Games" description="Games" url="~/Games.aspx" resourceKey="Games" />
<siteMapNode title="Health" description="Health" url="~/Health.aspx" resourceKey="Health" />
<siteMapNode title="News" description="News" url="~/News.aspx" resourceKey="News" />
</siteMapNode>
</siteMapNode>
</siteMap>

 

你可能感兴趣的:(浏览器,url,存储,resources,encoding)