using Microsoft.AspNetCore.Mvc.Localization; using Microsoft.AspNetCore.Mvc.Razor; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Localization; namespace zero.Localization; internal class ZeroLocalizationModule : ZeroModule { public override void ConfigureServices(IServiceCollection services, IConfiguration configuration) { // hint: think about using https://github.com/nuages-io/nuages-localization services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(typeof(IStringLocalizer<>), typeof(StringLocalizer<>)); services.Configure(opts => opts.ViewLocationExpanders.Add(new LanguageViewLocationExpander(LanguageViewLocationExpanderFormat.Suffix))); services.AddSingleton(); services.AddTransient(); services.AddTransient(); services.AddLocalization(); services.AddOptions().Bind(configuration.GetSection("Zero:Localization")).Configure(opts => { opts.FilePath = "Config/texts.json"; }); } }