ASP.NET本地化
context.Request.UserLanguages(0) = lang
lang="zh-cn|zh-hk|en-us|..........."
App_LocalResources:
文件夹建立在与页面相同的位置下,
资源文件命名:
XXXXX.aspx.resx
XXXXX.aspx.zh-hk.resx
XXXXX.aspx.en-us.resx
需要一个没有语言的默认资源文件
App_GlobalResources
文件夹下的资源为整个应用程序共享,
语言版本的文件名可以自定义
可以用以下的方法获取对应的键值:
Public Shared Function GetGlobalResourceObject(ByVal classKey As String, ByVal resourceKey As String) As Object
classKey一般为资源文件名。
在Page中设置语言:
Protected Overrides Sub InitializeCulture()
If Request.Form("ListBox1") IsNot Nothing Then
Dim selectedLanguage As String = Request.Form("ListBox1")
UICulture = Request.Form("ListBox1")
Culture = Request.Form("ListBox1")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguage)
Thread.CurrentThread.CurrentUICulture = New CultureInfo(selectedLanguage)
End If
MyBase.InitializeCulture()
End Sub
在HTTP 模块与 Global.asax的事件中可以设置:
context.Request.UserLanguages(0) = lang