/// <summary> /// Builds an <see cref="JsonLocalizationDictionary" /> from given json string. /// </summary> /// <param name="jsonString">Json string</param> public static JsonLocalizationDictionary BuildFromJsonString(string jsonString) { JsonLocalizationFile jsonFile; try { jsonFile = JsonConvert.DeserializeObject <JsonLocalizationFile>( jsonString, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); } catch (JsonException ex) { throw new FirstNewsException("Can not parse json string. " + ex.Message); } var cultureCode = jsonFile.Culture; if (string.IsNullOrEmpty(cultureCode)) { throw new FirstNewsException("Culture is empty in language json file."); } var dictionary = new JsonLocalizationDictionary(CultureInfo.GetCultureInfo(cultureCode)); var dublicateNames = new List <string>(); foreach (var item in jsonFile.Texts) { if (string.IsNullOrEmpty(item.Key)) { throw new FirstNewsException("The key is empty in given json string."); } if (dictionary.Contains(item.Key)) { dublicateNames.Add(item.Key); } dictionary[item.Key] = item.Value.NormalizeLineEndings(); } if (dublicateNames.Count > 0) { throw new FirstNewsException( "A dictionary can not contain same key twice. There are some duplicated names: " + dublicateNames.JoinAsString(", ")); } return(dictionary); }
protected virtual JsonLocalizationDictionary CreateJsonLocalizationDictionary(string jsonString) { return(JsonLocalizationDictionary.BuildFromJsonString(jsonString)); }
protected virtual JsonLocalizationDictionary CreateJsonLocalizationDictionary(string fileName) { return(JsonLocalizationDictionary.BuildFromFile(fileName)); }