Esempio n. 1
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);
        }
Esempio n. 2
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);
        }
 public XmlEmbeddedFileLocalizationDictionaryProvider_Tests()
 {
     _dictionaryProvider = new XmlEmbeddedFileLocalizationDictionaryProvider(
         Assembly.GetExecutingAssembly(),
         "Abp.Tests.Localization.TestXmlFiles"
         );
 }
        public static void Configure(ILocalizationConfiguration localizationConfiguration)
        {
            var ass = typeof(EVLocalizationConfigurer).GetAssembly();
            var p   = new XmlEmbeddedFileLocalizationDictionaryProvider(ass, "EV.Localization.SourceFiles");
            var x   = new DictionaryBasedLocalizationSource(EVConsts.LocalizationSourceName, p);

            localizationConfiguration.Sources.Add(x);
        }
        public XmlEmbeddedFileLocalizationDictionaryProviderTests()
        {
            dictionaryProvider = new XmlEmbeddedFileLocalizationDictionaryProvider(
                typeof(XmlEmbeddedFileLocalizationDictionaryProviderTests).GetAssembly(),
                "StudioX.Tests.Localization.TestXmlFiles"
                );

            dictionaryProvider.Initialize("Test");
        }
        public XmlEmbeddedFileLocalizationDictionaryProvider_Tests()
        {
            _dictionaryProvider = new XmlEmbeddedFileLocalizationDictionaryProvider(
                Assembly.GetExecutingAssembly(),
                "Adorable.Tests.Localization.TestXmlFiles"
                );

            _dictionaryProvider.Initialize("Test");
        }
        public static void Configure(ILocalizationConfiguration localizationConfiguration)
        {
            XmlEmbeddedFileLocalizationDictionaryProvider dictionaryProvider = new XmlEmbeddedFileLocalizationDictionaryProvider(
                typeof(AcmStatisticsAbpLocalizationConfigurer).GetAssembly(),
                "AcmStatisticsAbp.Localization.SourceFiles");

            localizationConfiguration.Sources.Add(
                new DictionaryBasedLocalizationSource(
                    AcmStatisticsAbpConsts.LocalizationSourceName,
                    dictionaryProvider));
        }
        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);
        }
        private void AddLocalizationSources()
        {
            //添加Abp开头的本地化资源配置项:abp核心模块的本地化资源
            AbpDebug.WriteLine("添加Abp开头的本地化资源配置项");

            //要读取本地化资源的程序集
            var assembly = typeof(AbpKernelModule).GetAssembly();
            //资源文件除文件名外的完整命名空间
            var rootNameSpaces = "Abp.Localization.Sources.AbpXmlSource";
            //资源解析器
            var provider = new XmlEmbeddedFileLocalizationDictionaryProvider(assembly, rootNameSpaces);
            //资源
            var source = new DictionaryBasedLocalizationSource(AbpConsts.LocalizationSourceName, provider);

            Configuration.Localization.Sources.Add(source);
        }