ASP .NET Core 1.0 RTM-Lokalisierung funktioniert nicht

Ich habe versucht, die Lokalisierung für meine asp .NET Core 1.0 RTM-Webanwendung zu implementieren, nachdem ichmicrosofts Dokumentation und ich kann es einfach nicht zum Laufen bringen. Das Problem, das ich habe, ist, dass immer Zeichenfolgen aus der englischen Ressourcendatei angezeigt werden, unabhängig davon, wie ich die Kultur einstelle.

Wenn jemand 5 Minuten Zeit hat, wäre ich für Ihre Beiträge sehr dankbar.

Hier ist mein Startup.cs-Inhalt, der die Lokalisierung betrifft:

public void ConfigureServices(IServiceCollection services)
{
  ...
  services.AddMvc()
    .AddViewLocalization(LanguageViewLocationExpanderFormat.SubFolder)
    .AddDataAnnotationsLocalization();
  services.AddScoped<LocalizationFilter>();
  services.AddLocalization(options => options.ResourcesPath = "Resources");

  var supportedCultures = new List<CultureInfo>{
     new CultureInfo("en-US"),
     new CultureInfo("sl-SI"),
     new CultureInfo("de-DE"),
     new CultureInfo("hr-HR")
  };
  services.Configure<RequestLocalizationOptions>(options =>
  {
     options.SupportedCultures = supportedCultures;
     options.SupportedUICultures = supportedCultures;
     options.DefaultRequestCulture = new RequestCulture(new CultureInfo("en-US"), 
        new CultureInfo("en-US"));
  });
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env,
   ILoggerFactory loggerFactory)
{
      ...
      var supportedCultures = new List<CultureInfo>{
         new CultureInfo("en-US"),
         new CultureInfo("sl-SI"),
         new CultureInfo("de-DE"),
         new CultureInfo("hr-HR")
      };
      var requestLocalizationOptions = new RequestLocalizationOptions
      {
         SupportedCultures = supportedCultures,
         SupportedUICultures = supportedCultures,
         DefaultRequestCulture = new RequestCulture(new CultureInfo("en-US"), 
            new CultureInfo("en-US"))
       };
       app.UseRequestLocalization(requestLocalizationOptions);
}

Und so ändere ich die Kultur in OnActionExecuting in meinem ActionFilter

actionContext.HttpContext.Response.Cookies.Append(
    CookieRequestCultureProvider.DefaultCookieName,
    CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)),
    new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) });
CultureInfo.CurrentCulture = culture;
CultureInfo.CurrentUICulture = culture;

Ich habe auch versucht, dies auf meinem Controller ohne Glück zu tun.

Dann in meinen Ansichten verwende ich@inject IViewLocalizer Localizer um lokalisierte Zeichenketten mit @ anzuzeig@Localizer["Name"].

Meine Ressourcen befinden sich im Ordner Resources / Views / ControllerName wie so:

Resources, / Views / ControllerName / ViewName.en.resx Resources / Views / ControllerName / ViewName.sl.resx ...

Die angezeigte Zeichenfolge stammt immer aus dem .en Ressourcendatei, egal wie ich versuche, die Kultur zu ändern. Fehlt mir etwas? Gibt es noch etwas, was ich tun soll? Es scheint, das Problem, das ich habe, ist mit der Einstellung der Sprache. Basierend auf der Dokumentation solltest du den Cookie nur mit @ setzResponse.Cookies.Append, aber ich habe es auch mit @ versucCultureInfo.CurrentCulture wieThread.CurrentThread.CurentCulture ist nicht mehr verfügbar.

Ich weiß wirklich nicht, was ich vermisse. Irgendwelche Ideen?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage