国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

在ASP.Net 2.0中實現多語言界面的方法_.Net教程

2024-07-10 12:50:24
字體:
來源:轉載
供稿:網友

推薦:ASP.NET中實現模板頁
使用過JavaStruts程序員應該知道,Struts中有一個模板標記,雖然其使用起來比較復雜,但對于有大量頁面的程序來說其帶來了很多方便。但是,在ASP.NET中并沒有現成實現可用,這方面國內討論的也

1、跟以前一樣做界面,只是注意,把所有需要有多語言界面的文字都用label來做

2、做完以后,在Solution Explorer里選中這個文件,選Tools->Generate Local Resource

3、你會發現生成了一個目錄,App_LocalResources;這個目錄里多了一個resx的文件。比如你的aspx文件是default.aspx,它就會生成一個叫做default.aspx.resx的文件。

4、打開這個文件看看,原來在label中的那些文字都跑到這里來了

5、打開原來的aspx文件看看source,會發現源碼變了:

以下為引用的內容:

<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="Default2" title="Untitled Page" Culture="auto" meta:resourcekey="PageResource1" UICulture="auto" %>

…………

<asp:Localize ID="Localize1" runat="server" meta:resourcekey="Localize1Resource1"></asp:Localize>

6、注意這里:meta:resourcekey="PageResource1" 和meta:resourcekey="Localize1Resource1" 這就表示這里的文字是從資源中讀取的。

7、OK現在來做另一種語言的資源文件。很簡單,copy Default.aspx.resx再paste一下,然后rename為Default.aspx.fr-fr.resx注意fr-fr是你要做的語言的名字。大家如果看dvdrip的話,應該覺得這跟字幕文件很像吧?

8、有人說我怎么知道那個語言叫什么名字呢?很簡單,打開ie,tools->internet options -> languages -> add,方框中間的就是了。

9、現在開始編輯其他資源的文字。打開Default.aspx.fr-fr.resx,對照著原來的內容,把里面的內容改成法語的。

10、到此為止,我們就完成了第一階段。ASP.Net會根據用戶的語言偏好來選擇顯示的語言。把IE里的設置改一下,在我們剛說過的地方改成fr-fr,打開這一頁看看?如果是法語,恭喜你。如果不是,回頭重做……

11、OK,下一步,我們要允許用戶選擇自己的語言,而不是自動。我們會用cookie存取用戶的選擇。在Application級別,我們讀取這個cookie并設置適當的culture和uiculture。當然,第一次進來的時候,我們還是要讀取瀏覽器的設置,這個可以從Request.UserLanguages中獲得。

以下為引用的內容:

Private SupportedLanguages As String() = {"en-us", "fr-fr"}

Public Const LANGUAGE_COOKIE_NAME As String = "UserLanguage"

Sub Application_AcquireRequestState(ByVal sender As Object, ByVal e As EventArgs)

Dim languageCookie As HttpCookie = Request.Cookies(LANGUAGE_COOKIE_NAME)

Dim language As String = String.Empty

If (languageCookie Is Nothing) Then

Dim userLanguages As String() = Request.UserLanguages

Dim index As Integer

For i As Integer = 0 To userLanguages.Length - 1

index = Array.IndexOf(SupportedLanguages, userLanguages(i))

If index >= 0 Then

language = SupportedLanguages(index)

Exit For

End If

Next

If language = String.Empty Then _

language = SupportedLanguages(0)

Response.Cookies.Add(New HttpCookie(LANGUAGE_COOKIE_NAME, language))

Else

language = languageCookie.Value

End If

Dim culture As CultureInfo = New CultureInfo(language)

System.Threading.Thread.CurrentThread.CurrentUICulture = culture

End Sub

12、然后我們要有一頁讓用戶選擇語言,比如我們用兩個button來做。在點擊這個button之后,我們要設置這個cookie為適當的語言:

以下為引用的內容:

Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click

SetLanguage("fr-fr")

End Sub

Protected Sub SetLanguage(ByVal language As String)

Response.Cookies(Global.ASP.global_asax.LANGUAGE_COOKIE_NAME).Value = language

Dim culture As CultureInfo = New CultureInfo(language)

System.Threading.Thread.CurrentThread.CurrentUICulture = culture

Server.Transfer(Request.Path)

End Sub

注意最后的Server.Transfer(Request.Path) ,這是為了重新讀取這一頁,這樣這一頁也會顯示新選擇的語言。

13、最后我們要去掉ASP.Net的自動選擇。從Default.aspx中去除:

Culture="auto" UICulture="auto"

14、打開來看一看吧!

分享:優秀ASP.NET程序員修煉之路
“為人寫程序” 初級的程序員或經驗不足的程序員往往只意識到自己的程序是寫給計算機的,而不會在意程序其實也是寫給人的,或在意得不夠、不全面。寫給機器的程序,往往追求的

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 墨江| 云阳县| 汶上县| 铜鼓县| 莱芜市| 社会| 车致| 太原市| 柘荣县| 苍南县| 定陶县| 响水县| 昆明市| 岢岚县| 平谷区| 合川市| 许昌市| 海南省| 乌兰浩特市| 镇雄县| 宁乡县| 张北县| 高州市| 威宁| 基隆市| 晋州市| 乌拉特前旗| 澜沧| 枣阳市| 蒙城县| 平定县| 丰宁| 西畴县| 明水县| 铁岭市| 筠连县| 紫阳县| 阿勒泰市| 永和县| 花莲县| 嘉峪关市|