2010-06-04 85 views
0

我有2个链接,一个英文一个西班牙文。无论如何,我可以在.net中本地化吗?我正在考虑使用站点地图我如何本地化网站地图的网址?

+1

是的URL不同,或只是文本? – Greg 2010-06-04 14:49:31

+0

只是为了检查我是否正确理解你:你有两个URL,一个在englisch的页面(mypage-en.html),一个在西班牙语的同一页面(mypage-es.html)。你想在你的asp.net页面上有一个链接,指向一个或另一个URL,这取决于访问者的当前语言? – Hinek 2010-06-04 14:59:58

+0

网址是不同的,如果我的文化是西班牙文我想加载西班牙网址链接到不同的URL,如果我的文化是英语,我想连接到不同的英文网站 – 2010-06-07 02:20:20

回答

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.您可以从服务器端控件本地化大量属性。我为了简单而对“文本”属性进行了硬编码。

这里是去了本地化几个环节:

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

希望我很清楚:)

编辑

我不我知道我完全没有提出了“网站地图”因素。答案是肯定的,不是。在单个站点地图中,您只能本地化标题,说明和自定义属性,而不是URL。但是,您可以为每个区域设置创建一个不同的站点地图,并将其添加到web.config文件中。下面是说明如何做到这一点(在页面底部)的链接:Localize SiteMap

-D

+0

是的,它没有任何意义,你不能locailze网站地图,我刚刚创建了一个新的XML文档。这是诀窍。 – 2010-06-16 15:27:50