/// <summary> /// 添加或更新本地化字符串 /// </summary> /// <param name="locals">本地字符串</param> public void AddOrUpdate(params LocalString[] locals) { if (locals == null || locals.Length == 0) { return; } foreach (var l in locals) { if (l == null) { continue; } if (l.LanguageCode.Length < 2) { throw new ArgumentException("格式错误,LanguageCode必须是languagecode2格式", "locals"); } //精确匹配:要求<languagecode2>-<country/regioncode2>完全一致 if (this.LocalStringDict.ContainsKey(l.LanguageCode)) { LocalString ls = this.LocalStringDict[l.LanguageCode]; ls.Value = l.Value; } else { this.Add(l); } } }
/// <summary> /// /// </summary> /// <param name="languageCode"> /// <![CDATA[<languagecode2>-<country/regioncode2>]]> /// </param> /// <param name="useDefaultLanguage"> /// 是否使用默认语言 /// </param> /// <returns></returns> protected LocalString Get(string languageCode, bool useDefaultLanguage) { LocalString ls = this.Get(languageCode); if ((ls == null || ls.InvalidValue) && useDefaultLanguage) { return(this.Get(this.DefaultLanguage)); } return(ls); }
/// <summary> /// 更新已经存在的本地化字符串。 /// </summary> /// <param name="languageCode"></param> /// <param name="value"></param> /// <returns>已经存在对应的语言返回true,否则返回false。</returns> public bool Update(string languageCode, string value) { //精确匹配:要求<languagecode2>-<country/regioncode2>完全一致 if (this.LocalStringDict.ContainsKey(languageCode)) { LocalString ls = this.LocalStringDict[languageCode]; ls.Value = value; return(true); } return(false); }
private void Add(LocalString ls) { this.localList.Add(ls); this.LocalStringDict[ls.LanguageCode] = ls; }
/// <summary> /// 获取对应语言的字符串 /// </summary> /// <param name="languageCode"></param> /// <returns></returns> public string GetValue(string languageCode, bool useDefaultLanguage = true) { LocalString ls = this.Get(languageCode, useDefaultLanguage); return(ls?.Value); }