.NET程序实现多语言

首先建立.NET资源文件.resx

langs.en-us.resx

 1<root>
 2<xsd:schema id="root" xmlns="" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:xsd=" http://www.w3.org/2001/XMLSchema ">
 3<xsd:element msdata:isdataset="true" name="root">
 4<xsd:complextype>
 5<xsd:choice maxoccurs="unbounded">
 6<xsd:element name="data">
 7<xsd:complextype>
 8<xsd:sequence>
 9<xsd:element minoccurs="0" msdata:ordinal="1" name="value" type="xsd:string"></xsd:element>
10<xsd:element minoccurs="0" msdata:ordinal="2" name="comment" type="xsd:string"></xsd:element>
11</xsd:sequence>
12<xsd:attribute name="name" type="xsd:string"></xsd:attribute>
13<xsd:attribute name="type" type="xsd:string"></xsd:attribute>
14<xsd:attribute name="mimetype" type="xsd:string"></xsd:attribute>
15</xsd:complextype>
16</xsd:element>
17<xsd:element name="resheader">
18<xsd:complextype>
19<xsd:sequence>
20<xsd:element minoccurs="0" msdata:ordinal="1" name="value" type="xsd:string"></xsd:element>
21</xsd:sequence>
22<xsd:attribute name="name" type="xsd:string" use="required"></xsd:attribute>
23</xsd:complextype>
24</xsd:element>
25</xsd:choice>
26</xsd:complextype>
27</xsd:element>
28</xsd:schema>
29<resheader name="ResMimeType">
30<value>text/microsoft-resx</value>
31</resheader>
32<resheader name="Version">
33<value>1.0.0.0</value>
34</resheader>
35<resheader name="Reader">
36<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
37</resheader>
38<resheader name="Writer">
39<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
40</resheader>
41<data name="frm-caption">
42<value>English</value>
43</data>
44</root>

langs.zh-Chs.resx

 1<root>
 2<xsd:schema id="root" xmlns="" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:xsd=" http://www.w3.org/2001/XMLSchema ">
 3<xsd:element msdata:isdataset="true" name="root">
 4<xsd:complextype>
 5<xsd:choice maxoccurs="unbounded">
 6<xsd:element name="data">
 7<xsd:complextype>
 8<xsd:sequence>
 9<xsd:element minoccurs="0" msdata:ordinal="1" name="value" type="xsd:string"></xsd:element>
10<xsd:element minoccurs="0" msdata:ordinal="2" name="comment" type="xsd:string"></xsd:element>
11</xsd:sequence>
12<xsd:attribute name="name" type="xsd:string"></xsd:attribute>
13<xsd:attribute name="type" type="xsd:string"></xsd:attribute>
14<xsd:attribute name="mimetype" type="xsd:string"></xsd:attribute>
15</xsd:complextype>
16</xsd:element>
17<xsd:element name="resheader">
18<xsd:complextype>
19<xsd:sequence>
20<xsd:element minoccurs="0" msdata:ordinal="1" name="value" type="xsd:string"></xsd:element>
21</xsd:sequence>
22<xsd:attribute name="name" type="xsd:string" use="required"></xsd:attribute>
23</xsd:complextype>
24</xsd:element>
25</xsd:choice>
26</xsd:complextype>
27</xsd:element>
28</xsd:schema>
29<resheader name="ResMimeType">
30<value>text/microsoft-resx</value>
31</resheader>
32<resheader name="Version">
33<value>1.0.0.0</value>
34</resheader>
35<resheader name="Reader">
36<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
37</resheader>
38<resheader name="Writer">
39<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
40</resheader>
41<data name="frm-caption">
42<value>中文</value>
43</data>
44</root>

运行.NET资源文件生成器

resgen langs.en-us.resx

resgen langs.zh-Chs.resx

生成lang.en-us.resources和lang.zh-Chs.resources

将2个文件分别复制到bin\debug\en-us和bin\debug\zh-chs目录里

代码写:

代码写:

public class main
{

[STAThread]
static void Main() {
Application.Run(new langs.langsFrm("en-us"));
}
}

窗体程序中:

窗体程序中:

public langsFrm(string culture){
rm=ResourceManager.CreateFileBasedResourceManager("langs."+culture,Application.StartupPath+@""+culture,null);
InitializeComponent();

this.Text=rm.getString("frm-caption");
}

Published At
Categories with Web编程
Tagged with
comments powered by Disqus