ASP.NET语言切换

时间:2010-07-14 04:17:44

标签: asp.net vb.net

我可以更改我的页面的语言,但是如果我选择法语并且我在当前页面上并且如果我尝试加载另一页面,则该页面将不是法语。如何设置它以使其一致?

在母版页中切换按钮:
        如果Page.Culture =“English(United States)”那么             Response.Redirect(Request.Url.AbsolutePath +“?lang = fr-CA”)         ElseIf Page.Culture =“French(Canada)”然后             Response.Redirect(Request.Url.AbsolutePath +“?lang = en-US”)         结束如果

并在每个页面中:

受保护的覆盖Sub 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

1 个答案:

答案 0 :(得分:0)

我认为在主页面中从页面切换到切换时,不会回发查询字符串参数。

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

在用户个人资料中,存储文化的更好方法可能是cookie或(如果您使用asp.net会员资格)。

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