Exemple #1
0
        /// <summary>
        /// Adiciona suporte a globalização para a API.
        /// </summary>
        /// <param name="app"></param>
        /// <param name="configuration"></param>
        /// <param name="appSettingsGlobalizationSection">Seção do appsettings, onde estão as configurações de globalização.</param>
        /// <returns></returns>
        public static IApplicationBuilder UseGlobalization(this IApplicationBuilder app, IConfiguration configuration, string appSettingsGlobalizationSection = "Globalization")
        {
            var globalizationOptions = new GlobalizationOptions();

            configuration.GetSection(appSettingsGlobalizationSection).Bind(globalizationOptions);

            var requestOptions = new RequestLocalizationOptions
            {
                DefaultRequestCulture = GetDefaultRequestCulture(globalizationOptions.DefaultRequestCulture),
                SupportedCultures     = GetSupportedCultures(globalizationOptions.SupportedCultures),
                SupportedUICultures   = GetSupportedUICultures(globalizationOptions.SupportedUICultures),
            };

            if (!globalizationOptions.UseQueryStringRequestCultureProvider)
            {
                RequestCultureProvider requestProvider = requestOptions.RequestCultureProviders.OfType <QueryStringRequestCultureProvider>().FirstOrDefault();

                if (requestProvider != null)
                {
                    requestOptions.RequestCultureProviders.Remove(requestProvider);
                }
            }

            app.UseRequestLocalization(requestOptions);

            return(app);
        }
        /// <summary>
        /// Create <see cref="CustomUrlStringCultureProviderTest"/>.
        /// </summary>
        public CustomUrlStringCultureProviderTest()
        {
            var languageManipulationService = new LanguageManipulationService();

            _cultureProvider = new CustomUrlStringCultureProvider(
                languageManipulationService);
        }
    /// <summary>
    /// Adds a new <see cref="RequestCultureProvider"/> to the <see cref="RequestLocalizationOptions.RequestCultureProviders"/>.
    /// </summary>
    /// <param name="requestLocalizationOptions">The cultures to be added.</param>
    /// <param name="requestCultureProvider">The cultures to be added.</param>
    /// <returns>The <see cref="RequestLocalizationOptions"/>.</returns>
    /// <remarks>This method ensures that <paramref name="requestCultureProvider"/> has priority over other <see cref="RequestCultureProvider"/> instances in <see cref="RequestLocalizationOptions.RequestCultureProviders"/>.</remarks>
    public static RequestLocalizationOptions AddInitialRequestCultureProvider(
        this RequestLocalizationOptions requestLocalizationOptions,
        RequestCultureProvider requestCultureProvider)
    {
        if (requestLocalizationOptions == null)
        {
            throw new ArgumentNullException(nameof(requestLocalizationOptions));
        }

        if (requestCultureProvider == null)
        {
            throw new ArgumentNullException(nameof(requestCultureProvider));
        }

        requestLocalizationOptions.RequestCultureProviders.Insert(0, requestCultureProvider);

        return(requestLocalizationOptions);
    }