Ejemplo n.º 1
0
 public static IMvcBuilder AddLocalization <TResource>(this IMvcBuilder builder, string resourcePath) where TResource : class, new()
 {
     return(builder.AddMvcLocalization(o =>
     {
         if (!string.IsNullOrWhiteSpace(resourcePath))
         {
             o.ResourcesPath = resourcePath;
         }
     })
            .AddDataAnnotationsLocalization(o => o.DataAnnotationLocalizerProvider = (type, factory) => factory.Create(typeof(TResource))));
 }
        /// <summary>
        /// localize ModelBinding messages, e.g. when user enters string value instead of number...
        /// these messages can't be localized like data attributes
        /// </summary>
        /// <param name="mvc"></param>
        /// <param name="services"></param>
        /// <returns></returns>
        public static IMvcBuilder AddModelBindingMessagesLocalizer
            (this IMvcBuilder mvc, IServiceCollection services)
        {
            try
            {
                return(mvc);
                //return services.AddRazorPages().AddMvcOptions(options => options.EnableEndpointRouting = false);

                //return mvc.AddMvcOptions(o =>
                //{
                //    try
                //    {
                //        //var factory = services.BuildServiceProvider().GetService<IStringLocalizerFactory>();
                //        //var L = factory.Create(null);

                //        //o.ModelBindingMessageProvider.SetValueIsInvalidAccessor((x) => L["The value '{0}' is invalid.", x]);
                //        //o.ModelBindingMessageProvider.SetValueMustBeANumberAccessor((x) => L["The field {0} must be a number.", x]);
                //        //o.ModelBindingMessageProvider.SetMissingBindRequiredValueAccessor((x) => L["A value for the '{0}' property was not provided.", x]);
                //        //o.ModelBindingMessageProvider.SetAttemptedValueIsInvalidAccessor((x, y) => L["The value '{0}' is not valid for {1}.", x, y]);
                //        //o.ModelBindingMessageProvider.SetMissingKeyOrValueAccessor(() => L["A value is required."]);
                //        //o.ModelBindingMessageProvider.SetMissingRequestBodyRequiredValueAccessor(() => L["A non-empty request body is required."]);
                //        //o.ModelBindingMessageProvider.SetNonPropertyAttemptedValueIsInvalidAccessor((x) => L["The value '{0}' is not valid.", x]);
                //        //o.ModelBindingMessageProvider.SetNonPropertyUnknownValueIsInvalidAccessor(() => L["The value provided is invalid."]);
                //        //o.ModelBindingMessageProvider.SetNonPropertyValueMustBeANumberAccessor(() => L["The field must be a number."]);
                //        //o.ModelBindingMessageProvider.SetUnknownValueIsInvalidAccessor((x) => L["The supplied value is invalid for {0}.", x]);
                //        //o.ModelBindingMessageProvider.SetValueMustNotBeNullAccessor((x) => L["Null value is invalid."]);
                //    }
                //    catch (Exception ex)
                //    {
                //        ex.Message.ToString();
                //    }

                //});
            }
            catch (Exception ex)
            {
                return(mvc.AddMvcLocalization());
            }
        }