實現多語言的方法可能有使用資源文件,或者配置xml兩種方法吧。
沒時間研究過多,學習了一下使用資源文件的方法,成功了。
在.net2.0 中,m$ 為我們提供了一種簡單方便的方法, 使用資源文件
1.新建一個 Winform 應用程序, 新建一 Form ,名為 Form1,添加一個菜單一個按鈕。如圖
2. 設置 Form1 的 Localizable 屬性為 true, 設置該屬性後,.net 將根據不同的語言,為應用程序生成不同的資源文件
3.設置各個控件的文本(系統默認語言下)
4.更改 Form1 的 Language 屬性為想要支持的另一種語言,此例中我們選用 English
5.重新設置各個控件的文本
注:此時.net 將為 Form1 生成另一個資源文件,在本例中名為 Form1.en.resx
當你需要添加新的控件時,需要切換到default語言。
6. 如果有其它的語言要設置,請重復第4,第5步
7.編寫代碼 (需要消息框多語言支持的話,就用form做消息框吧。同時也做成多語言支持。)
大氣象
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Globalization;
namespace GlobalResource
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Msg msg = new Msg();
msg.ShowDialog();
}
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void 中文ToolStripMenuItem_Click(object sender, EventArgs e)
{
//更改當前線程的 CultureInfo
//zh-CN 為中文,更多的關於 Culture 的字符串請查 MSDN
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("zh-CN");
//對當前窗體應用更改後的資源
ApplyResource();
}
private void 英文ToolStripMenuItem_Click(object sender, EventArgs e)
{
//更改當前線程的 CultureInfo
//en 為英文,更多的關於 Culture 的字符串請查 MSDN
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en"