C# 适用于前后端的多语言架构一

需求:需求就是这样,但是我们这个平台需要支持多语言,可以做不?

开发:需要支持哪些语言?

需求:现在就先简、繁和英,后面需要在加!

开发:好的....

然而之前没有做过多语言的,不过没吃过猪肉还没看过猪跑,看看微软官网等其他平台,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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勿芮介

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值