В ядре .net не работает локализация, культура по умолчанию не настроена - PullRequest
0 голосов
/ 01 мая 2019

Привет, я пытаюсь реализовать локализацию в ядре .net.Я хочу реализовать локализацию в моих представлениях статического контента.По умолчанию он показывает немецкий язык и может быть изменен на другие языки.Я настроил его, чтобы установить культуру по умолчанию на немецкий, но он не работает.Пожалуйста, помогите

Что я пробовал: -

В моем файле запуска

public void ConfigureServices(IServiceCollection services)
        {

            //adding HttpContextAccessor middleware
            services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();

        services.AddRouting(options => options.LowercaseUrls = true);
        services.AddMvc();

        //configuration for multilanguage support
        services.AddLocalization();

        services.AddMvc()
 .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
 .AddDataAnnotationsLocalization();



        //adding other services...
        ConfigureBusinessServices(services);
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        var supportedCultures = new[]{
      new CultureInfo("en-US"),
      new CultureInfo("fr"),
      new CultureInfo("de"),

        };

        app.UseRequestLocalization(new RequestLocalizationOptions
        {
            DefaultRequestCulture = new RequestCulture("de"),
            // Formatting numbers, dates, etc.
            SupportedCultures = supportedCultures,
            // UI strings that we have localized.
            SupportedUICultures = supportedCultures
        });


        app.UseStaticFiles();
        app.UseSession();

        //configuring mvc routes...
        app.UseMvc(routes =>
        {
            routes.MapRoute(
               name: "areaRoute",
               template: "{area:exists}/{controller}/{action}/{id?}",
               defaults: new { controller = "Home", action = "Index" });

            routes.MapRoute(
                name: "default",
                template: "{controller}/{action}/{id?}",
                defaults: new { controller = "Home", action = "Index" });
        });
    }

В моем представлении я сделал это: -

@TestProject.Resources.TestProjectUI.Home.ContactUs.btn_TextSendMessage

для отображения значения ресурса

Я получаю данные из файла ресурсов, но из файла ресурсов на английском языке, потому что текущая культура настроена на английский Великобритания.Я получаю вывод, как это:

enter image description here

Текущая культура отображается как английский, из-за чего приходит сообщение (Отправить сообщение Английская культура)из файла En.resx.

...