2010-07-14 152 views
0

我可以更改我的页面的语言,但是如果我选择法语并且我在当前页面上,并且如果我尝试加载另一个页面,那么该页面将不会以法语显示。我如何设置它以保持一致?在母版页ASP.NET语言切换

切换按钮:
如果Page.Culture = “英语(美国)” 然后 的Response.Redirect(Request.Url.AbsolutePath + “LANG = FR-CA?”) elseif的Page.Culture = “法语(加拿大),” 然后 的Response.Redirect(Request.Url.AbsolutePath + “LANG = EN-US?”) 结束如果

,并在每个页面:

保护的覆盖子InitializeCulture() Dim lang As String = String.Empty

lang = Request.QueryString("lang") 

    If lang IsNot Nothing Then 

     Session("culture") = lang 
     Thread.CurrentThread.CurrentCulture = New CultureInfo(lang) 
     Thread.CurrentThread.CurrentUICulture = New CultureInfo(lang) 

    Else 

     If Session("culture") IsNot Nothing Then 

      lang = Session("culture").ToString() 
      Thread.CurrentThread.CurrentCulture = New CultureInfo(lang) 
      Thread.CurrentThread.CurrentUICulture = New CultureInfo(lang) 
     End If 
     Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US") 
     Thread.CurrentThread.CurrentUICulture = New CultureInfo("en-US") 
    End If 
    MyBase.InitializeCulture() 
End Sub 
+0

我们可以看到一些关于如何加载和保存语言的代码?可能有很多不同的原因,为什么这不起作用,没有显示任何东西,我不明白任何人都可以提供帮助。 – spinon 2010-07-14 04:21:14

回答

0

我想在从页面切换到主页面切换时,查询字符串参数不会回传。

您可以尝试和调试应用程序以查看从页面更改时您的Request.QueryString集合是什么?

也许一个更好的方式来存储文化将在cookie中或(如果您使用asp.net成员资格)在用户配置文件中。

我还可以注意到,如果出现这种情况,基本页面将很方便实现InitializeCulture方法,而不是在每个页面中重复它。

+0

这是否解决了您的问题还是由其他问题引起的? – Stefaan 2010-07-19 05:38:04