摘要:Visual C# 多國語言
參考:http://ezworker2010.blogspot.tw/2011/10/form-labelbuttonmenu-default-form.html
先在要使用多國語言的 Form 上把會使用到的物件先都擺上: Label、Button、Menu。 先都設定好 Default 的語言,再來要修改 Form 的屬性 Localizable to True,如下圖:
![]() |
| Change Localizable from False to True |
接著再把 Language 設定成所需使用的語言: Chinese (Traditional, Taiwan),修改 Lable、Button等的Text ,系統會自動產生相對應的 Form1.zh-TW.resx 如下:
![]() |
| Form1.zh-TW.resx |
在程式一開始Using的後面加上:
![]() |
| Setting.settings |
參考:http://www.dotblogs.com.tw/yc421206/archive/2011/02/21/21482.aspx
官方建議表單都應該使用表單架構資源,下篇的內容正是表單架構資源的操作步驟。
1.表單的Localizable屬性設為true
2.規畫Form,先規劃好中文的。
這時在Form1.resx可以看到vs已經幫我們產生了預設語言的東西。
3.建立英文語系資源檔
3-1.選擇Language語系
3-2.逐一修改Form上的Text屬性
這時候vs就會自動幫忙產生出資源檔:Form1.en.resx
4.切換語系
在這裡已經寫的很詳細,切換語系的動作主要是用ComponentResourceManager.ApplyResources方法來套用資源檔,詳細內容請參考
http://www.dotblogs.com.tw/larrynung/archive/2009/08/17/10100.aspx
我將它包成dll,用互端呼叫只要一句就能達成切換語系的功能,有興趣的再自行去下載 ChangeLanguage.zip。
using System.Windows.Forms.ChangeLanguage;
namespace WindowsFormsApplication8
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Language.Apply(this, "zh-tw");
}
private void button2_Click(object sender, EventArgs e)
{
Language.Apply(this, "en-us");
}
}
}


