/// <summary> /// Gets all strings for the requested language /// </summary> /// <param name="sourceLang"></param> /// <param name="source"></param> /// <returns></returns> public List <LocalizedString> GetLocalizationStringFromAssembly(string sourceLang, string source) { var localResult = XmlLocations.GetXmlLocationBySourceName(source); var provider = new XmlEmbeddedFileLocalizationDictionaryProvider( Assembly.GetAssembly(localResult.Assembly), localResult.LocalizationNameSpace ); provider.Initialize(source); var result = new List <LocalizedString>(); var localizationDictionary = provider.Dictionaries.FirstOrDefault(a => a.Value.CultureInfo.Name == sourceLang); var localizedStrings = localizationDictionary.Value?.GetAllStrings().ToList(); //Else we load by the source if (localizedStrings != null) { foreach (var localizedString in localizedStrings) { result.Add(localizedString); } } return(result); }
public Dictionary <string, string> GetTexts(string languageName, string source) { var result = new Dictionary <string, string>(); if (!IsXMLAvailableForTheLangCode(languageName, source)) { throw new AbpException("Language file not found"); } var localResult = XmlLocations.GetXmlLocationBySourceName(source); var provider = new XmlEmbeddedFileLocalizationDictionaryProvider( Assembly.GetAssembly(localResult.Assembly), localResult.LocalizationNameSpace ); provider.Initialize(source); //Default dictionary = "en" en should be always available var strings = provider.DefaultDictionary.GetAllStrings().Where(a => a.CultureInfo.Name == languageName); foreach (var localizedString in strings) { result.Add(localizedString.Name, localizedString.Value); } return(result); }
public bool IsXMLAvailableForTheLangCode(string langCode, string source) { var provider = new XmlEmbeddedFileLocalizationDictionaryProvider( Assembly.GetExecutingAssembly(), XmlLocations.GetXmlLocationBySourceName(source) ); provider.Initialize(source); //Default dictionary = "en" en should be always available var result = provider.Dictionaries.Any(a => a.Value.CultureInfo.Name == langCode); return(result); }
private List <string> GetLocalizationKeysFromAssembly(string source) { var provider = new XmlEmbeddedFileLocalizationDictionaryProvider( Assembly.GetExecutingAssembly(), XmlLocations.GetXmlLocationBySourceName(source) ); provider.Initialize(source); //Default dictionary = "en" en should be always available var strings = provider.DefaultDictionary.GetAllStrings(); var result = strings.Select(a => a.Name).ToList(); return(result); }