VB.Net 多國語系切換製作
最近有一個客戶要求軟體開發需要中英文切換的功能,所以在出國前來測試一下。
很幸運得很快就測試出來,所以在此做個紀錄。
參考網址:
http://www.dotblogs.com.tw/yc421206/archive/2008/12/28/6553.aspx
http://www.dotblogs.com.tw/larrynung/archive/2009/04/24/8158.aspx
http://social.msdn.microsoft.com/forums/zh-TW/232/thread/065282f3-accf-4693-936b-9ba967119ed1/
1.開啟一個新的專案
2.點選圖面上"顯示所有檔案"按鈕
3.點選後的狀態如下圖,在Form1.vb檔案前方會有+號可以拉開
4.先在工具箱中拉出幾個元件,Button1、Button2拿來當作語系切換,Lable1當作文字顯示。
5.設定Form1屬性Localizable切換成Ture
6.切換完成後,將Form1屬性Language切換中文(在此示範中、英文語系切換)
7.確定在設計模式為中文(如下圖1),然後開始設定每一個物件的中文顯示字串
8.完成中文語系顯示(如下圖1)後在下圖2會多出一個資源檔(resx)
9.點開資源檔後會如下圖,之後可以直接在表格內修改文字。
10.然後設定完中文語系後,以同樣的步驟設定新增英文語系。
設定表單屬性Language為英文
11.修改每一個物件的英文顯示(先確認左上方設計模式是否為英文)
12.設定完後點開英文的資源檔如下圖(當然可以不用每一個物件都設定兩次,可以直接編輯表格即可,有沒有發現資源檔中英文的名稱欄位是一樣的呢!!)
13.接下來的部分是程式編寫
很幸運得很快就測試出來,所以在此做個紀錄。
參考網址:
http://www.dotblogs.com.tw/yc421206/archive/2008/12/28/6553.aspx
http://www.dotblogs.com.tw/larrynung/archive/2009/04/24/8158.aspx
http://social.msdn.microsoft.com/forums/zh-TW/232/thread/065282f3-accf-4693-936b-9ba967119ed1/
1.開啟一個新的專案
2.點選圖面上"顯示所有檔案"按鈕
3.點選後的狀態如下圖,在Form1.vb檔案前方會有+號可以拉開
4.先在工具箱中拉出幾個元件,Button1、Button2拿來當作語系切換,Lable1當作文字顯示。
5.設定Form1屬性Localizable切換成Ture
6.切換完成後,將Form1屬性Language切換中文(在此示範中、英文語系切換)
8.完成中文語系顯示(如下圖1)後在下圖2會多出一個資源檔(resx)
9.點開資源檔後會如下圖,之後可以直接在表格內修改文字。
10.然後設定完中文語系後,以同樣的步驟設定新增英文語系。
設定表單屬性Language為英文
11.修改每一個物件的英文顯示(先確認左上方設計模式是否為英文)
12.設定完後點開英文的資源檔如下圖(當然可以不用每一個物件都設定兩次,可以直接編輯表格即可,有沒有發現資源檔中英文的名稱欄位是一樣的呢!!)
13.接下來的部分是程式編寫
1 Imports System.Resources 2 Imports System.Threading 3 Imports System.Globalization 4 5 Public Class Form1 6 7 Dim res As System.Resources.ResourceManager '資源檔管理員 8 9 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 10 11 res = New Resources.ResourceManager("WindowsApplication2.Form1", Me.GetType().Assembly) 12 13 End Sub 14 15 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 16 '中文顯示按鈕 17 Thread.CurrentThread.CurrentCulture = New CultureInfo("zh-TW") 18 Thread.CurrentThread.CurrentUICulture = New CultureInfo("zh-TW") 19 20 Me.Text = res.GetString("$this.Text") 21 Button1.Text = res.GetString("Button1.Text") 22 Button2.Text = res.GetString("Button2.Text") 23 Label1.Text = res.GetString("Label1.Text") 24 25 End Sub 26 27 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 28 '英文顯示按鈕 29 30 Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US") 31 Thread.CurrentThread.CurrentUICulture = New CultureInfo("en-US") 32 33 Me.Text = res.GetString("$this.Text") 34 Button1.Text = res.GetString("Button1.Text") 35 Button2.Text = res.GetString("Button2.Text") 36 Label1.Text = res.GetString("Label1.Text") 37 38 End Sub 39 End Class
========================================================================
匯入參考
1 Imports System.Resources 2 Imports System.Threading 3 Imports System.Globalization
定義資源檔管理員
7 Dim res As System.Resources.ResourceManager '資源檔管理員
表單開啟讀取
9 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 10 11 res = New Resources.ResourceManager("WindowsApplication2.Form1", Me.GetType().Assembly) 12 13 End Sub
中文切換按鈕
15 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 16 '中文顯示按鈕 17 Thread.CurrentThread.CurrentCulture = New CultureInfo("zh-TW") 18 Thread.CurrentThread.CurrentUICulture = New CultureInfo("zh-TW") 19 20 Me.Text = res.GetString("$this.Text") 21 Button1.Text = res.GetString("Button1.Text") 22 Button2.Text = res.GetString("Button2.Text") 23 Label1.Text = res.GetString("Label1.Text") 24 25 End Sub
英文切換按鈕
27 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 28 '英文顯示按鈕 29 30 Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US") 31 Thread.CurrentThread.CurrentUICulture = New CultureInfo("en-US") 32 33 Me.Text = res.GetString("$this.Text") 34 Button1.Text = res.GetString("Button1.Text") 35 Button2.Text = res.GetString("Button2.Text") 36 Label1.Text = res.GetString("Label1.Text") 37 38 End Sub
檔案下載:VB.Net多國語系切換
留言
張貼留言