/// <summary> /// Builds an <see cref="XmlLocalizationDictionary"/> from given xml string. /// </summary> /// <param name="xmlString">XML string</param> internal static XmlLocalizationDictionary BuildFomXmlString(string xmlString) { var settingsXmlDoc = new XmlDocument(); settingsXmlDoc.LoadXml(xmlString); var localizationDictionaryNode = settingsXmlDoc.SelectNodes("/localizationDictionary"); if (localizationDictionaryNode == null || localizationDictionaryNode.Count <= 0) { throw new AbpException("A Localization Xml must include localizationDictionary as root node."); } var dictionary = new XmlLocalizationDictionary(new CultureInfo(localizationDictionaryNode[0].GetAttributeValue("culture"))); var textNodes = settingsXmlDoc.SelectNodes("/localizationDictionary/texts/text"); if (textNodes != null) { foreach (XmlNode node in textNodes) { var name = node.GetAttributeValue("name"); var value = node.GetAttributeValue("value"); if (string.IsNullOrEmpty(name)) { throw new AbpException("name attribute of a text is empty in given xml string."); } dictionary[name] = value; } } return dictionary; }
/// <summary> /// Builds an <see cref="XmlLocalizationDictionary"/> from given xml string. /// </summary> /// <param name="xmlString">XML string</param> public static XmlLocalizationDictionary BuildFomXmlString(string xmlString) { var xmlDocument = new XmlDocument(); xmlDocument.LoadXml(xmlString); var localizationDictionaryNode = xmlDocument.SelectNodes("/localizationDictionary"); if (localizationDictionaryNode == null || localizationDictionaryNode.Count <= 0) { throw new AbpException("A Localization Xml must include localizationDictionary as root node."); } var cultureName = localizationDictionaryNode[0].GetAttributeValueOrNull("culture"); if (string.IsNullOrEmpty(cultureName)) { throw new AbpException("culture is not defined in language XML file!"); } var dictionary = new XmlLocalizationDictionary(new CultureInfo(cultureName)); var dublicateNames = new List <string>(); var textNodes = xmlDocument.SelectNodes("/localizationDictionary/texts/text"); if (textNodes != null) { foreach (XmlNode node in textNodes) { var name = node.GetAttributeValueOrNull("name"); if (string.IsNullOrEmpty(name)) { throw new AbpException("name attribute of a text is empty in given xml string."); } if (dictionary.Contains(name)) { dublicateNames.Add(name); } dictionary[name] = (node.GetAttributeValueOrNull("value") ?? node.InnerText).NormalizeLineEndings(); } } if (dublicateNames.Count > 0) { throw new AbpException("A dictionary can not contain same key twice. There are some duplicated names: " + dublicateNames.JoinAsString(", ")); } return(dictionary); }
/// <summary> /// Builds an <see cref="XmlLocalizationDictionary"/> from given xml string. /// </summary> /// <param name="xmlString">XML string</param> public static XmlLocalizationDictionary BuildFomXmlString(string xmlString) { var xmlDocument = new XmlDocument(); xmlDocument.LoadXml(xmlString); var localizationDictionaryNode = xmlDocument.SelectNodes("/localizationDictionary"); if (localizationDictionaryNode == null || localizationDictionaryNode.Count <= 0) { throw new AbpException("A Localization Xml must include localizationDictionary as root node."); } var cultureName = localizationDictionaryNode[0].GetAttributeValueOrNull("culture"); if (string.IsNullOrEmpty(cultureName)) { throw new AbpException("culture is not defined in language XML file!"); } var dictionary = new XmlLocalizationDictionary(new CultureInfo(cultureName)); var dublicateNames = new List<string>(); var textNodes = xmlDocument.SelectNodes("/localizationDictionary/texts/text"); if (textNodes != null) { foreach (XmlNode node in textNodes) { var name = node.GetAttributeValueOrNull("name"); if (string.IsNullOrEmpty(name)) { throw new AbpException("name attribute of a text is empty in given xml string."); } if (dictionary.Contains(name)) { dublicateNames.Add(name); } dictionary[name] = (node.GetAttributeValueOrNull("value") ?? node.InnerText).NormalizeLineEndings(); } } if (dublicateNames.Count > 0) { throw new AbpException("A dictionary can not contain same key twice. There are some duplicated names: " + dublicateNames.JoinAsString(", ")); } return dictionary; }
/// <summary> /// Builds an <see cref="XmlLocalizationDictionary"/> from given xml string. /// </summary> /// <param name="xmlString">XML string</param> internal static XmlLocalizationDictionary BuildFomXmlString(string xmlString) { var settingsXmlDoc = new XmlDocument(); settingsXmlDoc.LoadXml(xmlString); var localizationDictionaryNode = settingsXmlDoc.SelectNodes("/localizationDictionary"); if (localizationDictionaryNode == null || localizationDictionaryNode.Count <= 0) { throw new AbpException("A Localization Xml must include localizationDictionary as root node."); } var cultureName = localizationDictionaryNode[0].GetAttributeValueOrNull("culture"); if (string.IsNullOrEmpty(cultureName)) { throw new AbpException("culture is not defined in language XML file!"); } var dictionary = new XmlLocalizationDictionary(new CultureInfo(cultureName)); var textNodes = settingsXmlDoc.SelectNodes("/localizationDictionary/texts/text"); if (textNodes != null) { foreach (XmlNode node in textNodes) { var name = node.GetAttributeValueOrNull("name"); if (string.IsNullOrEmpty(name)) { throw new AbpException("name attribute of a text is empty in given xml string."); } if (dictionary.Contains(name)) { throw new AbpException("A dictionary can not contain same key twice. '" + name + "' is defined more than once."); } var value = node.GetAttributeValueOrNull("value") ?? node.InnerText; dictionary[name] = value; } } return(dictionary); }
protected virtual XmlLocalizationDictionary CreateXmlLocalizationDictionary(string xmlString) { return(XmlLocalizationDictionary.BuildFomXmlString(xmlString)); }
protected virtual XmlLocalizationDictionary CreateXmlLocalizationDictionary(string fileName) { return(XmlLocalizationDictionary.BuildFomFile(fileName)); }