在asp
net
中
只需要简单在页面aspx头部的@page页增加两个新的属性
Culture
和
UICultrue
则WEB应用程序会自动在运行时
根据预先设定好的资源文件
自动显示相应语言的页面
如下面程序段所示
<%@ Page Language=VB
Culture=auto UICulture=auto
AutoEventWireup=false CompileWith=Defaultaspxvb
ClassName=Default_aspx meta:resourcekey=PageResource %>
为了测试程序打开IE浏览器将语言设置选定为中文运行程序则可以看到程序自动调用了中文资源文件显示出来的页面语言是中文而不是默认的英文(因为我们默认的defaultaspx是调用英文资源文件的)如下图
上面的程序中我们只是利用了资源文件的特性而已下面我们将实现让程序记住用户每次选择语言就象google那样记住用户每次的选择后下次用户在浏览页面时就会使用该语言的页面了
首先要实现这样的功能我们必须使用aspnet 中新提供的profile功能Profile可以利用数据库存储关于用户的个性化信息有点象session对象但session对象是有生存期的在生存期后session对象自动失效了而profile不同除非显式移除它要实现profile功能必须先在webconfig中进行定义如下
<systemweb>
<profile>
<properties>
<add name=language type=string/>
<group name=Info>
<add name=DateSelected
type=SystemDateTime/>
<add name=LastModified
type=SystemDateTime/>
</group>
</properties>
</profile>
要使用profile属性可以这样
Profilelanguage = enUS
ProfileInfoLastModified = Now
ProfileInfoDateSelected = CalendarSelectedDate
在webcongfig中将会定义一些属性/值分别存贮将要保存的变量和值比如lastmodified属性定义其值是datatime类型如此类推而<group>标签则是将一些相同或类似功能的变量值放在一起在beta 中profile是利用access数据库来保存这些值的
我们为了要让用户每次在下拉框中选择要用的语言并将其保存起来所以在提交按钮中写入如下代码
Sub btnSet_Click(ByVal sender As Object _
ByVal e As SystemEventArgs)
Profilelanguage = ddlLanguageSelectedItemValue
End Sub
而为了记录用户每次选择日历中的日期我们则利用profileinfodateselected属性来记录并且用ProfileInfoLastModified记录下用户每次选择日历中日期时的时间如下代码
[] [] [] []