asp.net core docsで説明したように、リクエストのローカライズ用にカスタムプロバイダをコンフィグレーションできます。ドキュメントに記載されているとおり:ASP.NET CoreのカスタムローカリゼーションプロバイダにDbContextを挿入する方法は?
データベースに言語とカルチャを保存させたいとします。あなたは、ユーザーのためにこれらの値を参照するプロバイダを書くことができます。
次のコードスニペットは、ドキュメントで提供されており、また、githubのサンプルLocalization.StarterWebであることを示します。
services.Configure<RequestLocalizationOptions>(options => {
var supportedCultures = new[]
{
new CultureInfo("en-US"),
new CultureInfo("fr")
};
options.DefaultRequestCulture = new RequestCulture(culture: "en-US", uiCulture: "en-US");
options.SupportedCultures = supportedCultures;
options.SupportedUICultures = supportedCultures;
options.RequestCultureProviders.Insert(0, new CustomRequestCultureProvider(async context =>
{
// My custom request culture logic
// DbContext needed here <--
return new ProviderCultureResult("en");
}));});
誰がでDBからユーザー固有の言語をロードするためにDbContext
を注入する方法を私に説明できます上記の機能は?
多くのお返事をいただきありがとうございます。あなたの提供されたコードサンプルには2つの小さな間違いがあります:コンストラクタの前に 'class'キーワードがあり、メソッド' GetService'がジェネリックでないため、GetService(typeof(AppDbContext));を呼び出さなければなりません; – MDummy
'GetService' –
Tseng
'GetService'の使い方を明確にしてくれてありがとう –
MDummy