Example #1
0
        // GET: /<controller>/
        public IActionResult Index(string cultures)
        {
            if (!string.IsNullOrWhiteSpace(cultures))
            {
                CultureInfo.CurrentCulture = CultureInfo.CurrentUICulture = new CultureInfo(cultures);
            }
            else
            {
                CultureInfo.CurrentCulture = CultureInfo.CurrentUICulture = new CultureInfo("en");
            }


            var stringLocalizer = new LocalizerStrategyFactory()
                                  .GetLocalizerStrategyByResourceType(ResourceTypeEnum.ResourceFile)
                                  .GetStringLocalizer();

            //var result = stringLocalizer["Greeting"];

            var mapper = new StringLocalizerParamMapper("@", new Dictionary <string, string>()
            {
                ["time"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
            });
            var result = stringLocalizer["Greeting", mapper, Map];

            return(Content(result));
        }
        public LocalizedString this[string name, StringLocalizerParamMapper map, Func <StringLocalizerParamMapper, string> func]
        {
            get
            {
                if (name == null)
                {
                    throw new ArgumentNullException(nameof(name));
                }

                string value = null;
                foreach (var provider in _providers)
                {
                    if (provider.TryGet(_culture, name, out value))
                    {
                        break;
                    }
                }

                if (!string.IsNullOrWhiteSpace(value))
                {
                    map.Template = value;
                    value        = func.Invoke(map);
                }

                return(new LocalizedString(name, value ?? name, resourceNotFound: value == null));
            }
        }
Example #3
0
        private string Map(StringLocalizerParamMapper mapper)
        {
            if (string.IsNullOrWhiteSpace(mapper.Template))
            {
                return("");
            }

            foreach (var param in mapper.ReplaceParam)
            {
                mapper.Template = mapper.Template.Replace($"{mapper.Placeholder}{param.Key}", param.Value);
            }

            return(mapper.Template);
        }