Exemple #1
0
        /// <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);
        }
Exemple #2
0
        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);
        }