日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

在ASP.Net 2.0中实现多语言界面的方法

發布時間:2024/9/20 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在ASP.Net 2.0中实现多语言界面的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????????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>

*********************************************************************

  如果是其他的控件上的文字,基本上也是會自動生成的。比如button和gridview的:

<asp:Button ID="Button1" runat="server" meta:resourcekey="Button1Resource1" Text="Button1" /><br />
<asp:GridView ID="GridView1" runat="server" meta:resourcekey="GridView1Resource1">
<Columns>
<asp:BoundField HeaderText="Header1" meta:resourcekey="BoundFieldResource1" />
<asp:BoundField HeaderText="Header2" meta:resourcekey="BoundFieldResource2" />
</Columns>
</asp:GridView>

  生成的resource如下:

  

   *********************************************************************

  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.下一步,我們要允許用戶選擇自己的語言,而不是自動。我們會用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. 打開來看一看吧!

???????? 轉至http://hi.baidu.com/16v_cn/blog/item/161d9711fc665e7ecb80c402.html。

總結

以上是生活随笔為你收集整理的在ASP.Net 2.0中实现多语言界面的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。