最近做程序需要用到多语言版本的问题,在网上收集了一些资料,现做以整理。
方法1. 通过添加不同语言的资源文件的方式进行切换
步骤1):
窗体属性Localizable设为TRUE,Language选择需要的语言,然后修改一下窗体的Text属性,就可以在窗体工程树下生成对应语言的资源文件,如下图所示。
![](https://img-blog.csdn.net/20181001095132586?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25peG9uY2hlbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) ![](https://img-blog.csdn.net/20181001095134609?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25peG9uY2hlbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
步骤2)
双击对应的资源文件,对控件名称进行修改,就可以。
问题:
只能修改控件的标题等属性,不能修改软件中的内容(也可能是我没找方法)
方法2. 通过添加语言XML文件的方法
该方法转自网络,非原创。 https://www.cnblogs.com/liangwenchao-912/p/5084076.html
1、设计图(自己瞎画的呵呵)
![](https://images2015.cnblogs.com/blog/773399/201512/773399-20151228211347167-1312457097.png)
2、做的小demo,界面如下
![](https://images2015.cnblogs.com/blog/773399/201512/773399-20151228211918995-1292573195.png) ![](https://images2015.cnblogs.com/blog/773399/201512/773399-20151228214013260-1057104657.png)
3、下面是代码展示部分
1)Form1代码展示
![复制代码](https://common.cnblogs.com/images/copycode.gif)
1 namespace WindowsFormsApplication1
2 {
3 public partial class Form1 : Form
4 {
5 public Form1()
6 {
7 InitializeComponent();
8 SetLanguage();
9 }
10
11 private void SetLanguage()
12 {
13 this.lbUserName.Text = GlobalData.GlobalLanguage.Login_UserName;
14 this.lbPwd.Text = GlobalData.GlobalLanguage.Login_UserPwd;
15 this.btnLogin.Text = GlobalData.GlobalLanguage.Login_Login;
16 }
17 }
18 }
![复制代码](https://common.cnblogs.com/images/copycode.gif)
2)GlobalData类代码展示
![复制代码](https://common.cnblogs.com/images/copycode.gif)
1 namespace WindowsFormsApplication1
2 {
3 public class GlobalData
4 {
5 ///
6 /// 系统语言(Chinese(中文),English(英文)。。。)
7 ///
8 public static string SystemLanguage = System.Configuration.ConfigurationManager.AppSettings["Language"];
9 // 在调用ConfigurationManager时,要加载System.Configuration.dll
10 private static Language globalLanguage;
11 public static Language GlobalLanguage
12 {
13 get
14 {
15 if (globalLanguage == null)
16 {
17 globalLanguage = new Language();
18 return globalLanguage;
19 }
20 return globalLanguage;
21 }
22 }
23
24 }
25 }
![复制代码](https://common.cnblogs.com/images/copycode.gif)
3)Language类代码展示
![复制代码](https://common.cnblogs.com/images/copycode.gif)
1 namespace WindowsFormsApplication1
2 {
3 public class Language
4 {
5 #region 登陆界面
6 public string Login_UserName = "";
7 public string Login_UserPwd = "";
8 public string Login_Login = "";
9 #endregion
10
11 protected Dictionary DicLanguage = new Dictionary();
12 public Language()
13 {
14 XmlLoad(GlobalData.SystemLanguage);
15 BindLanguageText();
16 }
17
18 ///
19 /// 读取XML放到内存
20 ///
21 ///
22 protected void XmlLoad(string language)
23 {
24 try
25 {
26 XmlDocument doc = new XmlDocument();
27 string address = AppDomain.CurrentDomain.BaseDirectory + "Languages\\" + language + ".xml";
28 doc.Load(address);
29 XmlElement root = doc.DocumentElement;
30
31 XmlNodeList nodeLst1 = root.ChildNodes;
32 foreach (XmlNode item in nodeLst1)
33 {
34 DicLanguage.Add(item.Name, item.InnerText);
35 }
36 }
37 catch (Exception ex)
38 {
39 throw ex;
40 }
41 }
42
43 public void BindLanguageText()
44 {
45 Login_UserName = DicLanguage["Login_UserName"];
46 Login_UserPwd = DicLanguage["Login_UserPwd"];
47 Login_Login = DicLanguage["Login_Login"];
48 }
49 }
50 }
![复制代码](https://common.cnblogs.com/images/copycode.gif)
4)App.config代码展示
![复制代码](https://common.cnblogs.com/images/copycode.gif)
1
2
3
4
5
6
7
![复制代码](https://common.cnblogs.com/images/copycode.gif)
5)English.xml代码展示
![复制代码](https://common.cnblogs.com/images/copycode.gif)
1
2
3 UserName:
4 Password:
5 Login
6
![复制代码](https://common.cnblogs.com/images/copycode.gif)
6)Chinese.xml代码展示
![复制代码](https://common.cnblogs.com/images/copycode.gif)
1
2
3 用户名:
4 密码:
5 登录
6
![复制代码](https://common.cnblogs.com/images/copycode.gif)
4、如果想要换法语则只需要在App.config中配置换成French,然后再添加一个French.xml,内容和其他语言模板一样把内容换成法语则可。
5、OK。
|