我有两个链接,一个英语一个西班牙语。无论如何我可以在.net中本地化吗?我在考虑使用站点地图
答案 0 :(得分:2)
当然,您可以使用全局或本地资源。
对于本地资源(与.aspx页面相关),切换到设计模式,单击工具 - >生成本地资源。 这将为您的所有服务器端控件创建“meta:resoucekey”位,并且还将在“App_LocalResources文件夹”下生成资源文件。复制该资源文件并将其重命名为您要使用的西班牙语。
例如,如果您的文件名是mypage.aspx,则生成的本地资源将是mypage.aspx.resx,您的新文件将是mypage.aspx.es.resx(这将使用传统的西班牙语)。标记如下:
<asp:HyperLink runat="server" ID="myLink" Text="The Link" meta:resourcekey="myLink" />
在本地资源文件中,确保密钥与id匹配:密钥应为“myLink.NavigateURL”,值应为您的链接
如果你去全球资源路线,那么只需将新资源文件添加到解决方案中的App_GlobalResources文件夹中,将其命名为任何你想要的,并为其他语言复制它。例如,新的全局资源是MyGlobalResources.resx。和西班牙语资源MyGlobalResources.es.resx。现在将以下内容添加到您的标记中:
<asp:HyperLink runat="server" ID="myLink" NavigateURL="<%$ Resources:MyGlobalResources, myLink %>" Text="The Link" />
在全局资源文件中,密钥是您想要的。只要确保它与你在标记中放置的内容相匹配:在这种情况下,键应该是“myLink”,值应该是你的URL。
现在,当您切换语言时,应该选择正确的资源文件并显示正确的URL。
P.S。您可以从服务器端控件本地化许多属性。为简单起见,我对“Text”属性进行了硬编码。
以下是一些针对本地化的链接:
http://msdn.microsoft.com/en-us/library/ms227427.aspx
http://www.west-wind.com/presentations/wwDbResourceProvider/introtolocalization.aspx
http://msdn.microsoft.com/en-us/magazine/cc163566.aspx
希望我足够清楚:)
修改强>
我不知道我是如何完全错过“sitemap”因素的。答案是肯定的,不是。在单个站点地图中,您只能本地化标题,描述和自定义属性,而不是URL。但是,您可以为每个区域设置创建不同的站点地图,并将它们添加到web.config文件中。以下是解释如何操作的链接(页面底部):Localize SiteMap
-D