编辑器-多语言

项目需求:SDK需要多语言
旧思路:采用打标签的方式进行多语言切换,不能动态增加减少,且增加的时候比较麻烦
新思路:在config目录下检索所有的文件,每一个文件对应一种语言,可方便动态新增减少语言种类

 		//当前语言
        public static Dictionary<string, string> defaultLanuage = new Dictionary<string, string>();
        //语言集合
        public static Dictionary<string, Dictionary<string, string>> listLanuageColliction = new Dictionary<string, Dictionary<string, String>>();

		private static int lastLanguageInt;
        private static int languageInt;
        public static int LanguageInt
        {
            get
            {
                return languageInt;
            }
            set
            {
                languageInt = value;

                if (lastLanguageInt != languageInt)
                {
                    lastLanguageInt = languageInt;
                    string currentLanguage = ((ICollection<string>)Main.listLanuageColliction.Keys).ToArray()[languageInt];
                    Debug.Log(lastLanguageInt);
                    defaultLanuage = listLanuageColliction[currentLanguage];
                }
            }
        }

		/// <summary>
        /// Plugins/Editor/Asset/Configs 路径下以txt为后缀的都是默认为多语言文本
        /// 解析多语言文本
        /// </summary>
        public static void GetLanuage()
        {
            defaultLanuage.Clear();
            listLanuageColliction.Clear();


            DirectoryInfo d_info = new DirectoryInfo(Path.Combine(Application.dataPath, "Plugins/Editor/Asset/Configs"));
            
            foreach (var item in d_info.GetFiles())
            {
                if(item.Extension.Equals(".txt"))
                {
                    var key = item.Name.Replace(".txt","");

                    listLanuageColliction.Add(key, new Dictionary<string, string>());

                    using (var sw = item.OpenText())
                    {

                        ParsingTxt(sw.ReadToEnd(), listLanuageColliction[key]);
                    }

                }
            }

        }

		public static void Init()
        {
   
            GetLanuage();
            defaultLanuage = listLanuageColliction[((ICollection<string>)Main.listLanuageColliction.Keys).ToArray()[0]];
            //初始化数据

        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值