中文和英文各一個,把須要替換的句子寫到裏面去!~。格式以下,html
000=輸入名字 001=輸入密碼 002=輸入郵箱 003=提交 004=重置 005=英文 006=漢語
而後,進行保存。這裏須要特別的注意,保存的格式是:java
文件名+「.語言區域性」工具
好比常見的 中文是zh-CN,英文是en-US字體
本文的是:resource.zh-CN.txt和resource.en-US.txtthis
具體的「語言區域性」能夠在這裏進行查找:猛擊查看語言區域性啊編碼
使用語言VS資源生成工具(Resource generator (Resgen)) 進行生成資源文件。打開VS的命令窗口 以下圖:spa
語法以下:resgen +文件名.net
好比 我如今使用:resgen resource.zh-CN.txtdebug
生成以後,咱們能獲得2個資源文件,以下所示:設計
如今,咱們把這2個文件放到debug目錄下面的Resource文件中
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Resources; using System.Globalization; using System.Threading; namespace MyMutilLanguage1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); this.ApplyResource();//默認設置 } private string strResourcePath = Application.StartupPath + "//Resource";//尋找放資源文件的路徑 private string defaultCulture = "zh-CN";//默認使用中文 private static ResourceManager rm; public void ApplyResource() { this.SetCulture(); this.SetResource(); this.SetUIChange(); } /// <summary> /// 設置區域語言設置 /// </summary> private void SetCulture() { CultureInfo culture = new CultureInfo(defaultCulture); Thread.CurrentThread.CurrentCulture = culture; Thread.CurrentThread.CurrentUICulture = culture; } private void SetResource() { rm = ResourceManager.CreateFileBasedResourceManager("resource", strResourcePath, null); //可使用 ResourceManager 類在運行時檢索「嵌入的資源」(即已經編譯到應用程序或類庫中的資源)。ResourceManager 類的每一個實例都與一個程序集關聯而且管理對嵌入到該程序集中的資源的檢索。 //參考:Tinysun的文章--ResourceManager使用 http://www.blogjava.net/tinysun/archive/2009/03/30/262969.html } private void SetUIChange() { //經過rm.GetString獲取 label1.Text = rm.GetString("000"); label2.Text = rm.GetString("001"); label3.Text = rm.GetString("002"); button1.Text = rm.GetString("003"); button2.Text = rm.GetString("004"); radioButton1.Text = rm.GetString("005"); radioButton2.Text = rm.GetString("006"); } private void radioButton1_CheckedChanged(object sender, EventArgs e) { defaultCulture = "en-US"; this.ApplyResource(); } private void radioButton2_CheckedChanged(object sender, EventArgs e) { defaultCulture = "zh-CN"; this.ApplyResource(); } } }
代碼都特別好理解。
結果以下:
中文版:
英文版:
好了,就這麼簡單。
這種方法也是利用資源文件,可是方法更簡單,可是擴展性不太好。
更改Form1屬性的Language和Localizable屬性。(由於Form1 須要設置中英文切換,因此對它進行更改)。
Language==>Chinese(Simplified)
Localizable==>True
這個時候,你須要把你界面上空間名字更改爲中文字,而後save,會在Form1的目錄自動生成一個文件:Form1.zh-Hans.resx。
對英文的處理也是這樣,把
Language==>English (United States)
Localizable==>True
這樣,就會在Form的目錄下面生成2個資源文件:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading; using System.Resources; using System.Globalization; namespace MyMutilLanguage2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); this.ApplyResource(); } private string defaultCulture = "zh-CN";//默認使用中文 private static ComponentResourceManager resource; public void ApplyResource() { this.SetCulture(); this.SetResource(); } /// <summary> /// 設置區域語言設置 /// </summary> private void SetCulture() { CultureInfo culture = new CultureInfo(defaultCulture); Thread.CurrentThread.CurrentCulture = culture; Thread.CurrentThread.CurrentUICulture = culture; } private void SetResource() { resource = new ComponentResourceManager(typeof(Form1)); resource.ApplyResources(this, "$this"); foreach (Control c in this.Controls) resource.ApplyResources(c, c.Name); } private void radioButton1_CheckedChanged(object sender, EventArgs e) { defaultCulture = "en-US"; this.ApplyResource(); } private void radioButton2_CheckedChanged(object sender, EventArgs e) { defaultCulture = "zh-CN"; this.ApplyResource(); } } }
代碼改變不算太大,最重要的就是:
resource = new ComponentResourceManager(typeof(Form1)); resource.ApplyResources(this, "$this"); foreach (Control c in this.Controls) resource.ApplyResources(c, c.Name);
ComponetResourceManager也是訪問資源文件。
1.Globalization of Windows Applications in 20 Minutes Using C#
2.Winform中多國語言窗體的設計以及.NET中資源文件的使用
3.