protected virtual ILocalizationDictionary CreateDictionaryFromFile(IFileInfo file) { using (var stream = file.CreateReadStream()) { return(CreateDictionaryFromFileContent(Utf8Helper.ReadStringFromStream(stream))); } }
private List <MenuDefinition> LoadMenu() { string xmlString; using (var stream = Assembly.GetEntryAssembly().GetManifestResourceStream("JK.Web.appMenus.config")) { xmlString = Utf8Helper.ReadStringFromStream(stream); } using (var sr = new StringReader(xmlString)) { using (var xr = XmlReader.Create(sr, new XmlReaderSettings { CloseInput = true, IgnoreWhitespace = true, IgnoreComments = true, IgnoreProcessingInstructions = true })) { var xmlDocument = new XmlDocument(); xmlDocument.Load(xr); var root = xmlDocument.SelectSingleNode("/root"); var menuDefinitionNode = root.SelectNodes("menuDefinition"); if (menuDefinitionNode == null || menuDefinitionNode.Count <= 0) { throw new AbpException("A Menu Xml must include menuDefinition as root node."); } List <MenuDefinition> list = new List <MenuDefinition>(); foreach (XmlNode node in menuDefinitionNode) { var name = node.GetAttributeValueOrNull("name"); if (string.IsNullOrEmpty(name)) { throw new AbpException("name is not defined in menu XML file!"); } var displayName = node.GetAttributeValueOrNull("displayName"); var menuDefinition = new MenuDefinition(name, L(displayName)); if (node.HasChildNodes) { foreach (XmlNode item in node.ChildNodes) { var itemName = item.GetAttributeValueOrNull("name"); if (string.IsNullOrEmpty(name)) { throw new AbpException("name is not defined in menu XML file!"); } var itemDisplayName = item.GetAttributeValueOrNull("displayName"); var menuItemDefinition = new MenuItemDefinition(itemName, L(itemDisplayName)); Iterate(menuItemDefinition, item); menuDefinition.AddItem(menuItemDefinition); } } list.Add(menuDefinition); } return(list); } } }
public override void Initialize(string sourceName) { var resourceNames = assembly.GetManifestResourceNames(); foreach (var resourceName in resourceNames) { if (resourceName.StartsWith(rootNamespace)) { using (var stream = assembly.GetManifestResourceStream(resourceName)) { var jsonString = Utf8Helper.ReadStringFromStream(stream); var dictionary = CreateJsonLocalizationDictionary(jsonString); if (Dictionaries.ContainsKey(dictionary.CultureInfo.Name)) { throw new StudioXInitializationException(sourceName + " source contains more than one dictionary for the culture: " + dictionary.CultureInfo.Name); } Dictionaries[dictionary.CultureInfo.Name] = dictionary; if (resourceName.EndsWith(sourceName + ".json")) { if (DefaultDictionary != null) { throw new StudioXInitializationException("Only one default localization dictionary can be for source: " + sourceName); } DefaultDictionary = dictionary; } } } } }
public override void Initialize(string sourceName, ILocalizationConfiguration localizationConfiguration) { CultureInfo[] allCultureInfos = CultureInfo.GetCultures(CultureTypes.AllCultures); List<string> resourceNames = _assembly.GetManifestResourceNames().Where(resourceName => allCultureInfos.Any(culture => resourceName.EndsWith($"{sourceName}.json", true, null) || resourceName.EndsWith($"{sourceName}-{culture.Name}.json", true, null))).ToList(); foreach (string resourceName in resourceNames) { if (!resourceName.StartsWith(_rootNamespace)) continue; using (Stream stream = _assembly.GetManifestResourceStream(resourceName)) { string jsonString = Utf8Helper.ReadStringFromStream(stream); JsonLocalizationDictionary dictionary = CreateJsonLocalizationDictionary(jsonString); string dicCultureInfoName = dictionary.CultureInfo.Name; if (Dictionaries.ContainsKey(dicCultureInfoName)) { throw new Exception(sourceName + " source contains more than one dictionary for the culture: " + dicCultureInfoName); } Dictionaries[dicCultureInfoName] = dictionary; LanguageIcon languageIcon = LocalizationConsts.LanguageIcons.Where(p => dicCultureInfoName.StartsWith(p.CountryName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); localizationConfiguration.Languages.Add( new LanguageInfo(dicCultureInfoName, dictionary.CultureInfo.NativeName, icon: languageIcon?.Icon, isDefault: CultureInfo.CurrentUICulture.Name.Equals(dicCultureInfoName))); if (!resourceName.EndsWith(sourceName + ".json")) continue; if (DefaultDictionary != null) { throw new Exception("Only one default localization dictionary can be for source: " + sourceName); } DefaultDictionary = dictionary; } } }
protected void LoadPermission(IPermissionDefinitionContext context) { string xmlString; using (var stream = Assembly.GetEntryAssembly().GetManifestResourceStream("JK.Web.appPermissions.config")) { if (stream == null) { return; } xmlString = Utf8Helper.ReadStringFromStream(stream); } using (var sr = new StringReader(xmlString)) { using (var xr = XmlReader.Create(sr, new XmlReaderSettings { CloseInput = true, IgnoreWhitespace = true, IgnoreComments = true, IgnoreProcessingInstructions = true })) { var xmlDocument = new XmlDocument(); xmlDocument.Load(xr); var root = xmlDocument.SelectSingleNode("/root"); if (root == null) { throw new AbpException("A Permission Xml must include root as root node."); } if (root.HasChildNodes) { foreach (XmlNode item in root.ChildNodes) { var name = item.GetAttributeValueOrNull("name"); if (string.IsNullOrEmpty(name)) { throw new AbpException("name is not defined in menu XML file!"); } var displayName = item.GetAttributeValueOrNull("displayName"); var permission = context.CreatePermission(name, L(displayName)); Iterate(permission, item); } } } } }
protected override void InitializeDictionaries() { var allCultureInfos = CultureInfo.GetCultures(CultureTypes.AllCultures); var resourceNames = _assembly.GetManifestResourceNames().Where(resouceName => allCultureInfos.Any(culture => resouceName.EndsWith($"{SourceName}.json", true, null) || resouceName.EndsWith($"{SourceName}-{culture.Name}.json", true, null))).ToList(); foreach (var resourceName in resourceNames) { if (resourceName.StartsWith(_rootNamespace)) { using (var stream = _assembly.GetManifestResourceStream(resourceName)) { var jsonString = Utf8Helper.ReadStringFromStream(stream); InitializeDictionary(CreateJsonLocalizationDictionary(jsonString), isDefault: resourceName.EndsWith(SourceName + ".json")); } } } }
public override void Initialize(string sourceName) { var allCultureInfos = CultureInfo.GetCultures(CultureTypes.AllCultures); var resourceNames = _assembly.GetManifestResourceNames().ToList(); //var resourceNames = _assembly.GetManifestResourceNames().Where(resouceName => // allCultureInfos.Any(culture => resouceName.EndsWith($"{sourceName}.xml", true, null) || // resouceName.EndsWith($"{sourceName}-{culture.Name}.xml", true, // null))).ToList(); foreach (var resourceName in resourceNames) { if (resourceName.StartsWith(_rootNamespace)) { using (var stream = _assembly.GetManifestResourceStream(resourceName)) { var xmlString = Utf8Helper.ReadStringFromStream(stream); var dictionary = CreateXmlLocalizationDictionary(xmlString); if (Dictionaries.ContainsKey(dictionary.CultureInfo.Name)) { throw new Exception(sourceName + " source contains more than one dictionary for the culture: " + dictionary.CultureInfo.Name); } Dictionaries[dictionary.CultureInfo.Name] = dictionary; if (resourceName.EndsWith(sourceName + ".xml")) { if (DefaultDictionary != null) { throw new Exception("Only one default localization dictionary can be for source: " + sourceName); } DefaultDictionary = dictionary; } } } } }
public override void Initialize(string sourceName) { var allCultureInfos = CultureInfo.GetCultures(CultureTypes.AllCultures); var resourceNames = _assembly.GetManifestResourceNames().Where(resouceName => allCultureInfos.Any(culture => resouceName.EndsWith($"{sourceName}.xml", true, null) || resouceName.EndsWith($"{sourceName}-{culture.Name}.xml", true, null))).ToList(); foreach (var resourceName in resourceNames) { if (resourceName.StartsWith(_rootNamespace)) { using (var stream = _assembly.GetManifestResourceStream(resourceName)) { var xmlString = Utf8Helper.ReadStringFromStream(stream); var dictionary = CreateXmlLocalizationDictionary(xmlString); if (Dictionaries.ContainsKey(dictionary.CultureInfo.Name)) { throw new SharePlatformInitializationException(sourceName + " 源包含多个区域性字典: " + dictionary.CultureInfo.Name); } Dictionaries[dictionary.CultureInfo.Name] = dictionary; if (resourceName.EndsWith(sourceName + ".xml")) { if (DefaultDictionary != null) { throw new SharePlatformInitializationException("源只能有一个默认本地化词典: " + sourceName); } DefaultDictionary = dictionary; } } } } }