예제 #1
0
        private AbpUserLocalizationConfigDto GetUserLocalizationConfig(string sourceName)
        {
            var currentCulture = CultureInfo.CurrentUICulture;
            var languages      = _languageManager.GetLanguages();

            var config = new AbpUserLocalizationConfigDto
            {
                CurrentCulture = new AbpUserCurrentCultureConfigDto
                {
                    Name        = currentCulture.Name,
                    DisplayName = currentCulture.DisplayName
                },
                Languages = languages.ToList()
            };

            if (languages.Count > 0)
            {
                config.CurrentLanguage = _languageManager.CurrentLanguage;
            }

            var sources = _localizationManager.GetAllSources().Where(s => s.Name.ToLower() == sourceName.ToLower() ||
                                                                     !CommonConsts.ApplicationSourceName.Contains(s.Name.ToLower()))
                          .OrderBy(s => s.Name).ToArray();

            config.Sources = sources.Select(s => new AbpLocalizationSourceDto
            {
                Name = s.Name,
                Type = s.GetType().Name
            }).ToList();

            config.Values = new Dictionary <string, Dictionary <string, string> >();
            foreach (var source in sources)
            {
                var stringValues     = source.GetAllStrings(currentCulture).OrderBy(s => s.Name).ToList();
                var stringDictionary = stringValues
                                       .ToDictionary(_ => _.Name, _ => _.Value);
                config.Values.Add(source.Name, stringDictionary);
            }

            return(config);
        }
예제 #2
0
        private AbpUserLocalizationConfigDto GetUserLocalizationConfig()
        {
            var currentCulture = CultureInfo.CurrentUICulture;
            var languages      = _languageManager.GetLanguages();

            var config = new AbpUserLocalizationConfigDto
            {
                CurrentCulture = new AbpUserCurrentCultureConfigDto
                {
                    Name        = currentCulture.Name,
                    DisplayName = currentCulture.DisplayName
                },
                Languages = languages.ToList()
            };

            if (languages.Count > 0)
            {
                config.CurrentLanguage = _languageManager.CurrentLanguage;
            }

            /*
             * // 支持i18n后,不需要再输出语言资源
             * //
             * var sources = _localizationManager.GetAllSources().OrderBy(s => s.Name).ToArray();
             * config.Sources = sources.Select(s => new AbpLocalizationSourceDto
             * {
             * Name = s.Name,
             * Type = s.GetType().Name
             * }).ToList();
             *
             * config.Values = new Dictionary<string, Dictionary<string, string>>();
             * foreach (var source in sources)
             * {
             * var stringValues = source.GetAllStrings(currentCulture).OrderBy(s => s.Name).ToList();
             * var stringDictionary = stringValues
             *     .ToDictionary(_ => _.Name, _ => _.Value);
             * config.Values.Add(source.Name, stringDictionary);
             * }
             * //*/
            return(config);
        }
예제 #3
0
        public static string Localize(this AbpUserLocalizationConfigDto userLocalizationConfig, string key, string source, params object[] args)
        {
            if (!userLocalizationConfig.Values.ContainsKey(source))
            {
                throw new Exception("Cannot find localization source: " + source);
            }

            if (!userLocalizationConfig.Values[source].ContainsKey(key))
            {
                return(key);
            }

            var value = userLocalizationConfig.Values[source][key];

            if (args.IsNullOrEmpty())
            {
                return(value);
            }

            return(string.Format(value, args));
        }
예제 #4
0
        protected virtual AbpUserLocalizationConfigDto GetUserLocalizationConfig()
        {
            var currentCulture = CultureInfo.CurrentUICulture;
            var languages      = LanguageManager.GetLanguages();

            var config = new AbpUserLocalizationConfigDto
            {
                CurrentCulture = new AbpUserCurrentCultureConfigDto
                {
                    Name        = currentCulture.Name,
                    DisplayName = currentCulture.DisplayName
                },
                Languages = languages.ToList()
            };

            if (languages.Count > 0)
            {
                config.CurrentLanguage = LanguageManager.CurrentLanguage;
            }

            var sources = LocalizationManager.GetAllSources().OrderBy(s => s.Name).ToArray();

            config.Sources = sources.Select(s => new AbpLocalizationSourceDto
            {
                Name = s.Name,
                Type = s.GetType().Name
            }).ToList();

            config.Values = new Dictionary <string, Dictionary <string, string> >();
            foreach (var source in sources)
            {
                var stringValues     = source.GetAllStrings(currentCulture).OrderBy(s => s.Name).ToList();
                var stringDictionary = stringValues
                                       .ToDictionary(_ => _.Name, _ => _.Value);
                config.Values.Add(source.Name, stringDictionary);
            }

            return(config);
        }
예제 #5
0
 public static string Localize(this AbpUserLocalizationConfigDto userLocalizationConfig, string key, params object[] args)
 {
     return(Localize(userLocalizationConfig, key, AbpGeekConsts.LocalizationSourceName, args));
 }