// 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)); } }
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); }