我有一个自定义sitemapprovider从数据库中加载页面。.NET从数据库本地化的站点地图?
页面(的pageid,fk_pageid(父),标题,URL,show_in_menu)
我想全球化/本地化页面title
。什么是最好的方法?
我有一个自定义sitemapprovider从数据库中加载页面。.NET从数据库本地化的站点地图?
页面(的pageid,fk_pageid(父),标题,URL,show_in_menu)
我想全球化/本地化页面title
。什么是最好的方法?
当您创建SiteMapNode对象时,使用允许您指定隐式/显式资源键的构造函数。我建议使用明确的资源键。
http://msdn.microsoft.com/en-us/library/ms150104.aspx
“为了编程本地化指定的资源,无论是implicitResourceKey的值设置为将被用于识别节点本地化资源或设置explicitResourceKeys以名称/值对的NameValueCollection集合的唯一名称其中name是要本地化的节点属性或自定义属性,value包含节点属性或自定义属性的本地化值。然后可以在相应的.resx文件中设置本地化值。有关如何本地化Title,Description,以及SiteMapNode对象的任何自定义属性,请参阅如何:本地化站点地图数据。有关explicitResourceKeys集合的语法要求,请参阅NameValueCollection。“
通常要本地化静态站点地图,您可以使用类似于以下的资源表达式:"$Resources:<ClassName>,<KeyName>,<DefaultValue>"
。
相反,添加<ClassName>
,<KeyName>
和<DefaultValue>
值给explicitResourceKey NameValueCollection中在它们出现在表达式中的顺序,都使用相同的密钥添加。
所以,如果你的表情会一直"$Resources:SiteMapResourceFileOrClass,RootNode.Title,My Root Node"
,而不是执行以下操作:
explicitResourceKeys.Add("Title", "SiteMapResourceFileOrClass")
explicitResourceKeys.Add("Title", "RootNode.Title")
explicitResourceKeys.Add("Title", "My Root Node")
您可以说明这样做。
哈哈,晚了再说再好不过!感谢您的解释! – Ropstah 2011-01-17 15:00:46