Asp.net 我有一个多语言网站。如何在不做太多工作的情况下添加参数或URL?

Asp.net 我有一个多语言网站。如何在不做太多工作的情况下添加参数或URL?,asp.net,visual-studio-2010,localization,parameters,multilingual,Asp.net,Visual Studio 2010,Localization,Parameters,Multilingual,我有一个公司网站(Visual Studio/VB/ASP.NET 4.0)。我用10种不同的语言和文化对我的网站进行了本地化 问题:尽管@Stefan注意到谷歌不会因为内容重复而惩罚我,但我所有的URL都是一样的。例如,英语中的about.aspx仍然是法语中的about.aspx——它只是从“fr”资源文件而不是“en”资源文件调用页面,并相应地显示它因此,尽管页面上的语言发生了变化,但URL永远不会改变 @亚里士多德建议我在我的网站上添加一个参数或URL,我并不反对。这将让客户了解他们在网

我有一个公司网站(Visual Studio/VB/ASP.NET 4.0)。我用10种不同的语言和文化对我的网站进行了本地化

问题:尽管@Stefan注意到谷歌不会因为内容重复而惩罚我,但我所有的URL都是一样的。例如,英语中的about.aspx仍然是法语中的about.aspx——它只是从“fr”资源文件而不是“en”资源文件调用页面,并相应地显示它因此,尽管页面上的语言发生了变化,但URL永远不会改变

@亚里士多德建议我在我的网站上添加一个参数URL,我并不反对。这将让客户了解他们在网站的法国部分或瑞典部分,也许谷歌机器人、Yahoobots会更喜欢这一点。事实上,我想我真的很喜欢这个建议

我想@Aristos在说“添加一个参数”时所暗示的是,我会在URL的末尾加上about.aspx?lang=FR之类的东西。我当前的链接如下所示:

                    <asp:LinkButton ID="LinkButton7" runat="server"
       CommandArgument="nl" OnClick="RequestLanguageChange_Click" class="flagbutton">
           <asp:Image ID="Image1" runat="server" ImageUrl="~/images/flagnl.png" tooltip="Bekijk deze website in het Nederlands" title="Bekijk deze website in het Nederlands"/>
           <img class="map" src="images/flaghovernl.png" alt=""/>
    </asp:LinkButton>


但如何添加参数?这会是一个复杂的过程吗?我的所有资源文件都在app_globalresources中。我正在寻找最简单的解决方案,将是最友好的搜索引擎优化。在此方面的任何指导都将不胜感激

现在让我们看看你的新问题。我在这里看到的也是一个不好的SEO,而不是改变语言的最佳实践方式

原因是您使用post back来更改语言。索引器从不在页面上发回帖子,很少运行javascript——而LinkButton是一种调用发回的javascript。只有在插入数据或执行操作时才使用回发功能是很好的,并且您不关心搜索引擎是否找到了回发后的内容或是否遵循了回发后的内容

<a href="about.aspx?lang=el">ellinika</a>
实际上必须做的是创建一个简单的链接来改变语言,而不是发帖

<a href="about.aspx?lang=el">ellinika</a>

现在,在
PageLoad
上检查是否找到此参数
lang=el
,如果找到,则显示此语言资源,如果没有,则显示默认资源


您也可以稍后重写url并将
about.aspx?lang=el
转换为
/el/about.aspx

现在让我们看看您的新问题。我在这里看到的也是一个不好的SEO,而不是改变语言的最佳实践方式

原因是您使用post back来更改语言。索引器从不在页面上发回帖子,很少运行javascript——而LinkButton是一种调用发回的javascript。只有在插入数据或执行操作时才使用回发功能是很好的,并且您不关心搜索引擎是否找到了回发后的内容或是否遵循了回发后的内容

<a href="about.aspx?lang=el">ellinika</a>
实际上必须做的是创建一个简单的链接来改变语言,而不是发帖

<a href="about.aspx?lang=el">ellinika</a>

现在,在
PageLoad
上检查是否找到此参数
lang=el
,如果找到,则显示此语言资源,如果没有,则显示默认资源


您也可以稍后重新编写url并将
about.aspx?lang=el
,转换为
/el/about.aspx

,这正是我想要做的,亚里士多德,再次感谢您花时间帮助我。我将尝试实现您的解决方案,并在完成后发回。我可以在IIS7中重写URL,我很熟悉。但是在页面加载的情况下,它会去哪里——在代码背后?它看起来像……吗。。。。Sub Page_Load lbl1.Text=“日期和时间是”&now()结束subristos,如果我能让它起作用,我将在今晚添加希腊语,以纪念你和你的慷慨帮助!亚里士多德,我目前在我的about.aspx页面中有这样的内容:如果Request.Form(“ListBox1”)不是空的话,则受保护的覆盖子初始值Sub InitializeCulture(),然后将Dim selectedLanguage设置为String=\Request.Form(“ListBox1”)UICulture=Request.Form(“ListBox1”)Culture=Request.Form(“ListBox1”)ListBox1)Thread.CurrentThread.CurrentCulture=CultureInfo.CreateSpecificCulture(selectedLanguage)Thread.CurrentThread.CurrentUICulture=New CultureInfo(selectedLanguage)如果MyBase.InitializeCulture()End Sub结束,这正是我想要做的,亚里士多德,再次感谢您花时间来帮助我。我将尝试实现您的解决方案,并在完成后发回。我可以在IIS7中重写URL,我很熟悉。但是在页面加载的情况下,它会去哪里——在代码背后?它看起来像……吗。。。。Sub Page_Load lbl1.Text=“日期和时间是”&now()结束subristos,如果我能让它起作用,我将在今晚添加希腊语,以纪念你和你的慷慨帮助!亚里士多德,我目前在我的about.aspx页面中有这样的内容:如果Request.Form(“ListBox1”)不是空的话,则受保护的覆盖子初始值Sub InitializeCulture(),然后将Dim selectedLanguage设置为String=\Request.Form(“ListBox1”)UICulture=Request.Form(“ListBox1”)Culture=Request.Form(“ListBox1”)ListBox1)Thread.CurrentThread.CurrentCulture=CultureInfo.CreateSpecificCulture(selectedLanguage)Thread.CurrentThread.CurrentUICulture=New CultureInfo(selectedLanguage)如果MyBase.InitializeCulture()结束,则结束