public CustomMvcLocalizer(IStringLocalizerFactory factory, IGlobalizationService globalizationService, IHttpContextAccessor httpContextAccessor) : base(factory) { string token = httpContextAccessor.HttpContext.GetTokenAsync("access_token").GetAwaiter().GetResult(); if (httpContextAccessor.HttpContext.Request.Headers.ContainsKey(Common.Constants.Constant.Protocol)) { protocol = new Guid(httpContextAccessor.HttpContext.Request.Headers[Common.Constants.Constant.Protocol]); } else { protocol = Guid.NewGuid(); } Type type = typeof(T); object[] attrs = type.GetCustomAttributes(typeof(Microsoft.AspNetCore.Mvc.AreaAttribute), false); string area; if (attrs.Length > 0) { area = (attrs[0] as Microsoft.AspNetCore.Mvc.AreaAttribute).RouteValue; } else { area = "Shared"; } string tag = type.Name?.Replace("Controller", ""); IRequestCultureFeature requestCultureFeature = httpContextAccessor.HttpContext.Features.Get <IRequestCultureFeature>(); RequestCulture requestCulture = requestCultureFeature.RequestCulture; string culture = requestCulture.Culture.Name?.ToLower(); translations = globalizationService.GetTermsTranslationsByTagAsync(token, protocol, area, tag, culture).GetAwaiter().GetResult(); }