1. สร้างอินเทอร์เฟซเหมือนเมื่อก่อน เพียงใส่ใจกับการใช้ป้ายกำกับสำหรับข้อความทั้งหมดที่ต้องใช้อินเทอร์เฟซหลายภาษา
2. หลังจากเสร็จสิ้น ให้เลือกไฟล์ใน Solution Explorer และเลือก Tools->Generate Local Resource
3 คุณจะพบว่าไดเร็กทอรี App_LocalResources ถูกสร้างขึ้น มีไฟล์ resx เพิ่มเติมในไดเร็กทอรีนี้ ตัวอย่างเช่น หากไฟล์ aspx ของคุณคือ default.aspx มันจะสร้างไฟล์ชื่อ default.aspx.resx
4. เปิดไฟล์นี้แล้วลองดู ข้อความทั้งหมดในป้ายกำกับอยู่ที่นี่
5. เปิดไฟล์ aspx ดั้งเดิมแล้วดูแหล่งที่มา คุณจะพบว่าซอร์สโค้ดมีการเปลี่ยนแปลง:
<%@ ภาษาเพจ = "VB" MasterPageFile = "~/MasterPage.master" AutoEventWireup = "false" CodeFile = "Default.aspx.vb" สืบทอด = "Default2" title = วัฒนธรรมเพจที่ไม่มีชื่อ = "อัตโนมัติ" meta: resourceskey = "PageResource1" UICulture = "อัตโนมัติ" %>
…………
<asp: Localize ID = "Localize1" runat = "เซิร์ฟเวอร์" meta:resourcekey = "Localize1Resource1" ></asp: Localize>
6. หมายเหตุที่นี่: meta:resourcekey="PageResource1" และ meta:resourcekey="Localize1Resource1" ซึ่งหมายความว่าข้อความที่นี่ถูกอ่านจากทรัพยากร
7. ตกลง ตอนนี้สร้างไฟล์ทรัพยากรสำหรับภาษาอื่น ทำได้ง่ายมาก ให้คัดลอก Default.aspx.resx แล้ววาง จากนั้นเปลี่ยนชื่อเป็น Default.aspx.fr-fr.resx โปรดทราบว่า fr-fr คือชื่อของภาษาที่คุณต้องการใช้ หากคุณดู DVDrip คุณควรคิดว่ามันคล้ายกับไฟล์คำบรรยายมากใช่ไหม
8. บางคนบอกว่าฉันจะรู้ชื่อภาษานั้นได้อย่างไร? ง่ายมาก เปิด IE เครื่องมือ -> ตัวเลือกอินเทอร์เน็ต -> ภาษา -> เพิ่ม อยู่ตรงกลางกล่อง
9. ตอนนี้ให้เริ่มแก้ไขข้อความของแหล่งข้อมูลอื่น เปิด Default.aspx.fr-fr.resx เปรียบเทียบเนื้อหาต้นฉบับ และเปลี่ยนเนื้อหาเป็นภาษาฝรั่งเศส
10. ณ จุดนี้เราได้เสร็จสิ้นขั้นตอนแรกแล้ว ASP.Net จะเลือกภาษาที่แสดงตามการตั้งค่าภาษาของผู้ใช้ เปลี่ยนการตั้งค่าใน IE เปลี่ยนตำแหน่งที่เราเพิ่งพูดถึงไปเป็น fr-fr เปิดหน้านี้แล้วลองดู? ถ้าเป็นภาษาฝรั่งเศสก็ยินดีด้วย ถ้าไม่ก็กลับไปทำใหม่อีกครั้ง...
11. ตกลง ต่อไป เราต้องการอนุญาตให้ผู้ใช้เลือกภาษาของตนเอง แทนที่จะเลือกโดยอัตโนมัติ เราใช้คุกกี้เพื่อจัดเก็บตัวเลือกของผู้ใช้ ในระดับแอปพลิเคชัน เราอ่านคุกกี้นี้และกำหนดวัฒนธรรมและวัฒนธรรมการใช้งานที่เหมาะสม แน่นอนว่าเมื่อเราเข้ามาครั้งแรกเรายังคงต้องอ่านการตั้งค่าเบราว์เซอร์ซึ่งสามารถรับได้จาก Request.UserLanguages
ภาษาที่รองรับส่วนตัวเป็นสตริง () = {"en-us", "fr-fr"}
สาธารณะ Const LANGUAGE_COOKIE_NAME As String = "UserLanguage"
Sub Application_AcquireRequestState (ผู้ส่ง ByVal As Object, ByVal e As EventArgs)
Dim languageCookie As HttpCookie = Request.Cookies (LANGUAGE_COOKIE_NAME)
Dim language As String = String.Empty
ถ้า (ภาษาคุกกี้ไม่มีอะไร) จากนั้น
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))
หากดัชนี >= 0 ดังนั้น
ภาษา = SupportedLanguages(index)
ออกเพื่อ
สิ้นสุดหาก
ถัดไป
ถ้า language = String.Empty จากนั้น _
language = SupportedLanguages(0)
Response.Cookies.Add(HttpCookie ใหม่ (LANGUAGE_COOKIE_NAME, ภาษา))
Else
language = languageCookie.Value
End If
Dim Culture As CultureInfo = New CultureInfo(ภาษา)
System.Threading.Thread.CurrentThread.CurrentUICulture = วัฒนธรรม
End Sub
12. จากนั้นเราจำเป็นต้องมีเพจที่ให้ผู้ใช้เลือกภาษาได้ เช่น เราใช้ปุ่มสองปุ่มในการดำเนินการ หลังจากคลิกปุ่มนี้ เราต้องการตั้งค่าคุกกี้นี้เป็นภาษาที่เหมาะสม:
Button2_Click ย่อยที่ได้รับการป้องกัน (ผู้ส่ง ByVal As Object, ByVal e As System.EventArgs) จัดการ Button2.Click
SetLanguage ("fr-fr")
End Sub
SetLanguage ย่อยที่ได้รับการป้องกัน (ภาษา ByVal As String)
Response.Cookies (Global.ASP.global_asax.LANGUAGE_COOKIE_NAME).Value = ภาษา
Dim วัฒนธรรม As CultureInfo = ใหม่ CultureInfo (ภาษา)
System.Threading.Thread.CurrentThread.CurrentUICulture = วัฒนธรรม
Server.Transfer ( Request.Path)
จบหมวดย่อย
หมายเหตุ Server.Transfer(Request.Path) ในตอนท้าย นี่คือการอ่านเพจอีกครั้งเพื่อให้เพจนั้นแสดงภาษาที่เลือกใหม่ด้วย
13. สุดท้ายเราต้องลบการเลือก ASP.Net โดยอัตโนมัติ ลบออกจาก Default.aspx:
วัฒนธรรม = "รถยนต์" UICulture = "รถยนต์"
14. ลองเปิดดูสิ!