/// <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); }
/// <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); }
/// <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); }
/// <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]); } }
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()); }