Example #1
0
        private static void ConfigureRequestLocalization(IApplicationBuilder app)
        {
            var iocResolver = app.ApplicationServices.GetRequiredService <IIocResolver>();

            using (var languageManager = iocResolver.ResolveAsDisposable <ILanguageManager>())
            {
                var defaultLanguage = languageManager.Object
                                      .GetLanguages()
                                      .FirstOrDefault(l => l.IsDefault);

                if (defaultLanguage == null)
                {
                    return;
                }

                var supportedCultures = languageManager.Object
                                        .GetLanguages()
                                        .Select(l => new CultureInfo(l.Name))
                                        .ToArray();

                var defaultCulture = new RequestCulture(defaultLanguage.Name);

                var options = new RequestLocalizationOptions
                {
                    DefaultRequestCulture = defaultCulture,
                    SupportedCultures     = supportedCultures,
                    SupportedUICultures   = supportedCultures
                };

                var settingManager = iocResolver.Resolve <ISettingManager>();
                var settingRequestCultureProvider = new SettingRequestCultureProvider(settingManager);
                AddSettingRequestCultureProvider(options, settingRequestCultureProvider);

                app.UseRequestLocalization(options);
            }
        }
Example #2
0
        private static void AddSettingRequestCultureProvider(RequestLocalizationOptions options, SettingRequestCultureProvider settingRequestCultureProvider)
        {
            var acceptLanguageHeaderRequestCultureProvider = options.RequestCultureProviders.FirstOrDefault(rcp => rcp.GetType() == typeof(AcceptLanguageHeaderRequestCultureProvider));

            if (acceptLanguageHeaderRequestCultureProvider != null)
            {
                var acceptLanguageHeaderRequestCultureProviderIndex = options.RequestCultureProviders.IndexOf(acceptLanguageHeaderRequestCultureProvider);
                options.RequestCultureProviders.Insert(acceptLanguageHeaderRequestCultureProviderIndex, settingRequestCultureProvider);
            }
            else
            {
                options.RequestCultureProviders.Add(settingRequestCultureProvider);
            }
        }