1. 添加资源文件
在Resources文件夹下添加需要支持的语言文件,这里添加了中文和英文
2. 添加ResourceCulture.cs对资源文件进行读取
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Resources;
namespace MXSoftware
{
public class ResourceCulture
{
/// <summary>
/// 设定语言环境
/// </summary>
/// <param name="strCultrue"></param>
public static void SetLocalClutrue(string strCultrue)
{
if (string.IsNullOrEmpty(strCultrue))
{
strCultrue = "zh-CN";
}
CultureInfo currentClutrue = new CultureInfo(strCultrue);
Thread.CurrentThread.CurrentCulture = currentClutrue;
}
/// <summary>
/// 取值
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static string GetString(string id)
{
string strValue = string.Empty;
try
{
ResourceManager resManager = new ResourceManager("MXSoftware.Resources.Resource", Assembly.GetExecutingAssembly());
strValue = resManager.GetString(id,Thread.CurrentThread.CurrentCulture);
}
catch
{
strValue = "No id:" + id + "please add";
}
return strValue;
}
}
}
3. 添加控件
4. 添加语言切换代码
private void FrmSettings_Load(object sender, EventArgs e)
{
cmbLanguage.DataSource = new List<string>() { "en-US", "zh-CN" };
}
private void cmbLanguage_SelectedIndexChanged(object sender, EventArgs e)
{
SetFormTextByLanguage(cmbLanguage.Text);
}
private void SetFormTextByLanguage(string strCultrue)
{
ResourceCulture.SetLocalClutrue(strCultrue);
this.lblLanguage.Text = ResourceCulture.GetString("language");
}