需求:需求就是这样,但是我们这个平台需要支持多语言,可以做不?
开发:需要支持哪些语言?
需求:现在就先简、繁和英,后面需要在加!
开发:好的....
然而之前没有做过多语言的,不过没吃过猪肉还没看过猪跑,看看微软官网等其他平台,nice啊,突然感觉很有干劲,于是开始一通操作! 有了下面的多语言架构,这里贴的只是一个demo,大家可以根据自己的需求修改。demo使用vs2015开发,mvc5框架。使用资源文件来存储语言文字。
1、资源文件添加
ps:需要注意一下,这里的资源文件访问修饰符最好设置为public。
因为是第一次做多语言架构,对于资源文件的使用和管理,不是特别清楚,所以第一次写,是根据自己的思路做了一个,后面有一个优化更新的版本,在后面会说一下。
2、语言字典设置(方便后台使用)
大致思路是:1、把所有语言资源做成一个静态字典,方便直接通过下标来访问
2、根据用户的系统语言和语言缓存来显示数据
a:静态字典,在程序启动时,把所有资源文件做成相应的静态字典,这里通过反射来实现
public class LanguageResours
{
//全局中文字典
public static Dictionary<string, string> CNLanguageDic;
//全局英文字典
public static Dictionary<string, string> ENLanguageDic;
//注册语言字典
public static void Register()
{
try
{
Assembly asy = Assembly.Load("Multi_L");
List<Type> languageTypeList = asy.GetTypes().Where(x => x.Namespace == "Multi_L.Resours").ToList();
object obj;
foreach (Type item in languageTypeList)
{
obj = Activator.CreateInstance(item, true);
if (item.Name == "Language_CN")
{
CNLanguageDic = getLanguageDic(obj, item);
}
if (item.Name == "Language_EN")
{
ENLanguageDic = getLanguageDic(obj, item);
}
}
}
catch (Exception ex) { }
}
/// <summary>
/// 字典设置
/// </summary>
/// <para