Wie Sie unten sehen können, erlaube ich nur wenige Kulturen. Und ich habe einen benutzerdefinierten Anbieter, der die Kultur des Benutzers erfasst. Wenn seine Kultur nicht in den SupportedCultures enthalten ist, bedeutet das, dass ich mit seiner Kultur nicht umgehen kann (selbst wenn ich es könnte). Ich kann vor der Zuweisung der SupportedCultures nicht wissen, welche Kulturen unterstützt werden.
Z.B. GetTheUserCulture() gibt „de“ zurück. Wenn ich später versuche, die Kultur zu verwenden, wird auf die Standardsprache zurückgegriffen (in diesem Fall „en“). Oder ich möchte, dass es „de“ ist.
Gibt es eine Möglichkeit, alle Kulturen zuzulassen?
Code: Select all
const string defaultCulture = "en";
services.Configure(options =>
{
var supportedCultures = new[]
{
new CultureInfo(defaultCulture),
new CultureInfo("fr-FR"),
new CultureInfo("fr"),
new CultureInfo("es"),
new CultureInfo("ru"),
new CultureInfo("ja"),
new CultureInfo("ar"),
new CultureInfo("zh"),
new CultureInfo("en-GB"),
new CultureInfo("en-UK")
};
options.DefaultRequestCulture = new RequestCulture(defaultCulture);
options.SupportedCultures = supportedCultures;
options.SupportedUICultures = supportedCultures;
options.RequestCultureProviders.Insert(0, new CustomRequestCultureProvider(async context =>
{
return new ProviderCultureResult(GetTheUserCulture());
}));
});
Mobile version