Exemple #1
0
        /// <summary>
        /// 获取当前语全部项
        /// </summary>
        /// <param name="defLangKV"></param>
        /// <returns></returns>
        public static LanguageKV CurrLang(LanguageKV defLangKV = null)
        {
            var all_lang  = AllLang();
            var curr_lang = GetCurrLang(all_lang, defLangKV);

            return(curr_lang);
        }
Exemple #2
0
        /// <summary>
        /// 获取当前全部语言
        /// </summary>
        /// <returns></returns>
        public static LanguageDic AllLang()
        {
            string basePath = AppDomain.CurrentDomain.BaseDirectory;

            string base_path = $"{basePath}..\\..\\..\\i18n\\";

            if (CurrLangDic == null)
            {
                CurrLangDic = new LanguageDic();
                var files = System.IO.Directory.GetFiles(base_path);
                if (files.HasItem())
                {
                    foreach (var item in files)
                    {
                        var lang_kv_json = item.GetTextFile();
                        if (lang_kv_json.NotNullEmpty())
                        {
                            LanguageKV curr_kv = lang_kv_json.ToObj <LanguageKV>();
                            var        key     = item.RightSinceStr("\\", ".");
                            CurrLangDic.Add(key, curr_kv);
                        }
                    }
                }
            }
            return(CurrLangDic);
        }
Exemple #3
0
        /// <summary>
        /// 查找当前语言的对应文字。
        /// 如果不存在此项会自动添加并存储
        /// </summary>
        /// <param name="key"></param>
        /// <param name="defLangKV"></param>
        /// <returns></returns>
        public static string Global(string key, LanguageKV defLangKV = null)
        {
            var all_lang  = AllLang();
            var curr_lang = GetCurrLang(all_lang, defLangKV);

            if (curr_lang.ContainsKey(key))
            {
                return(curr_lang[key]);
            }
            all_lang.AddKV(key, key).Save();
            return(key);
        }
Exemple #4
0
        /// <summary>
        /// 获取当前语言,全部语言来自外部
        /// </summary>
        /// <param name="allLang"></param>
        /// <param name="defLangKV"></param>
        /// <returns></returns>
        private static LanguageKV GetCurrLang(LanguageDic allLang, LanguageKV defLangKV = null)
        {
            var all_lang = allLang;

            if (!all_lang.ContainsKey(all_lang.DefLang) && defLangKV.NotNull())
            {
                all_lang.Add(all_lang.DefLang, defLangKV);
            }
            if (all_lang.ContainsKey(all_lang.CurrLang))
            {
                return(all_lang[all_lang.CurrLang]);
            }
            else
            {
                return(all_lang[all_lang.DefLang]);
            }
        }
Exemple #5
0
        public static LanguageKV CurrOrDefLang()
        {
            LanguageDic lang_dic  = new LanguageDic();
            LanguageKV  curr_lang = new LanguageKV();

            curr_lang.Add("Enum.SexEnum.None", "无");
            curr_lang.Add("Enum.SexEnum.Male", "男");
            curr_lang.Add("Enum.SexEnum.Female", "女");
            lang_dic.Add("zh-cn", curr_lang);

            // ===============
            LanguageKV curr_lang2 = new LanguageKV();

            curr_lang2.Add("Enum.SexEnum.None", "None");
            curr_lang2.Add("Enum.SexEnum.Male", "Male");
            curr_lang2.Add("Enum.SexEnum.Female", "Female");
            lang_dic.Add("us-en", curr_lang2);
            return(lang_dic.CurrOrDefLang());
        }