C#简单的国际化
1、新建一个资源文件夹,并在资源文件夹新建中英问的资源文件,如图:
2、中英文资源文档添加资源,如图:
3、Program.cs中添加根据系统语言确定中英文,这里默认为英文:
using Internationalization.Resources; using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Reflection; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace Internationalization { static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { ///国际化代码 CultureInfo language = new CultureInfo("en-US");//设置默认为英语 Language.LocRM = new System.Resources.ResourceManager("Internationalization.Resources.ResourceEN", typeof(ResourceEN).Assembly); if (Thread.CurrentThread.CurrentCulture.Name.ToUpper().Contains("ZH") || Thread.CurrentThread.CurrentUICulture.Name.ToUpper().Contains("ZH")) { language = new CultureInfo("zh-CN"); Language.LocRM = new System.Resources.ResourceManager("Internationalization.Resources.ResourceZH", typeof(ResourceZH).Assembly); } Thread.CurrentThread.CurrentCulture = language; Thread.CurrentThread.CurrentUICulture = language; Application.CurrentCulture = language; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } }
4、语言本地化(实例化)
using System; using System.Collections.Generic; using System.Linq; using System.Resources; using System.Text; using System.Threading.Tasks; namespace Internationalization { class Language { public static ResourceManager LocRM; //语言本地化 } }
5、测试一下
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Internationalization { public partial class Form1 : Form { public Form1() { InitializeComponent(); label_Name.Text = Language.LocRM.GetString("Name"); tB_Name.Text = Language.LocRM.GetString("Sex"); } } }
6、大功告成,展示结果(这里两种结果都展示一下)
7、这里已经实现了中英文,但是细心的朋友们发现了,这里的UI排版布局不一样,这就涉及到另一种国际化了,咳咳,别急,且听频道慢慢道来:
打开Form1的属性找到Language属性,这里第一项就是默认选项,你可以选择英语或者中文,然后在下面布局,你会发现存在同样的控件,可以布局完全不一样。
好了,今天就到这里,希望能帮助大家。
喝的不是酒,是心痛;抽的不是烟,是忧愁;