實(shí)現(xiàn)多語(yǔ)言的方法是通過(guò)配置文件實(shí)現(xiàn),通過(guò)從配置文件中讀取資源,然后在顯示窗口的時(shí)候,即Load()方法中,動(dòng)態(tài)顯示相應(yīng)的選擇語(yǔ)言。
下面是在C#的Windows編程中實(shí)現(xiàn)多語(yǔ)言的步驟:
第一步:設(shè)置默認(rèn)語(yǔ)言和修改默認(rèn)語(yǔ)言
我們定義了一個(gè)XML文件來(lái)存放默認(rèn)語(yǔ)言,文件名為L(zhǎng)anguageDefine.XML。
LanguageDefine.xml
<?xml version="1.0" standalone="yes"?>
<Language>
<DefaultLanguage>ZH</DefaultLanguage>
</Language>
該文件只有一個(gè)DefaultLanguage屬性,用于存放默認(rèn)語(yǔ)言,需要注意的是這個(gè)屬性要與語(yǔ)言配置文件中_后的字符串相同。
下面是用于讀取默認(rèn)語(yǔ)言和修改默認(rèn)語(yǔ)言的函數(shù):
//讀取默認(rèn)語(yǔ)言
public static string ReadDefaultLanguage(){
XmlReader reader = new XmlTextReader("resources/LanguageDefine.xml");
XmlDocument doc = new XmlDocument();
doc.Load(reader);
XmlNode root = doc.DocumentElement;
//選取DefaultLangugae節(jié)點(diǎn)
XmlNode node = root.SelectSingleNode("DefaultLanguage");
string result = "EN";
if (node != null)
//取出節(jié)點(diǎn)中的內(nèi)容
result = node.InnerText;
reader.Close();
return result;
}
//修改默認(rèn)語(yǔ)言
public static void WriteDefaultLanguage(string lang){
DataSet ds = new DataSet();
ds.ReadXml("resources/LanguageDefine.xml");
DataTable dt = ds.Tables["Language"];
dt.Rows[0]["DefaultLanguage"] = lang;
ds.AcceptChanges();
ds.WriteXml("resources/LanguageDefine.xml");
}
我們又用一個(gè)XML文件來(lái)存儲(chǔ)要顯示的語(yǔ)言的種類,和在特定的語(yǔ)言下語(yǔ)言選擇下拉菜單的顯示文字?,F(xiàn)我們只構(gòu)造了兩種語(yǔ)言,不過(guò)通過(guò)添加Item,我們可以很容易的實(shí)現(xiàn)增加一種語(yǔ)言的功能。
下面是在C#的Windows編程中實(shí)現(xiàn)多語(yǔ)言的步驟:
第一步:設(shè)置默認(rèn)語(yǔ)言和修改默認(rèn)語(yǔ)言
我們定義了一個(gè)XML文件來(lái)存放默認(rèn)語(yǔ)言,文件名為L(zhǎng)anguageDefine.XML。
LanguageDefine.xml
<?xml version="1.0" standalone="yes"?>
<Language>
<DefaultLanguage>ZH</DefaultLanguage>
</Language>
該文件只有一個(gè)DefaultLanguage屬性,用于存放默認(rèn)語(yǔ)言,需要注意的是這個(gè)屬性要與語(yǔ)言配置文件中_后的字符串相同。
下面是用于讀取默認(rèn)語(yǔ)言和修改默認(rèn)語(yǔ)言的函數(shù):
//讀取默認(rèn)語(yǔ)言
public static string ReadDefaultLanguage(){
XmlReader reader = new XmlTextReader("resources/LanguageDefine.xml");
XmlDocument doc = new XmlDocument();
doc.Load(reader);
XmlNode root = doc.DocumentElement;
//選取DefaultLangugae節(jié)點(diǎn)
XmlNode node = root.SelectSingleNode("DefaultLanguage");
string result = "EN";
if (node != null)
//取出節(jié)點(diǎn)中的內(nèi)容
result = node.InnerText;
reader.Close();
return result;
}
//修改默認(rèn)語(yǔ)言
public static void WriteDefaultLanguage(string lang){
DataSet ds = new DataSet();
ds.ReadXml("resources/LanguageDefine.xml");
DataTable dt = ds.Tables["Language"];
dt.Rows[0]["DefaultLanguage"] = lang;
ds.AcceptChanges();
ds.WriteXml("resources/LanguageDefine.xml");
}
我們又用一個(gè)XML文件來(lái)存儲(chǔ)要顯示的語(yǔ)言的種類,和在特定的語(yǔ)言下語(yǔ)言選擇下拉菜單的顯示文字?,F(xiàn)我們只構(gòu)造了兩種語(yǔ)言,不過(guò)通過(guò)添加Item,我們可以很容易的實(shí)現(xiàn)增加一種語(yǔ)言的功能。