私のリソースファイルが読み込まれない、または何か他のものが正しい値をロードするために私のアプリケーションを保持しています。ASPNETコアとresxファイルによるローカライゼーション
これは私のStartup.csからです:
services.AddLocalization(opts => { opts.ResourcesPath = "Resources"; });
services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix,
opts => { opts.ResourcesPath = "Resources"; })
.AddDataAnnotationsLocalization();
services.Configure<RequestLocalizationOptions>(options =>
{
var supportedCultures = new[]
{
new CultureInfo("da-DK")
};
options.DefaultRequestCulture = new RequestCulture(culture: "da-DK",
uiCulture: "da-DK");
options.SupportedCultures = supportedCultures;
options.SupportedUICultures = supportedCultures;
});
そして、これは私のコントローラからです:
public class CustomerController : Controller
{
private readonly IHtmlLocalizer<CustomerController> _localizer;
public CustomerController(IHtmlLocalizer<CustomerController> localizer)
{
_localizer = localizer;
}
public IActionResult MyAccount()
{
string test = Language.MyAccount;
ViewData["Message"] = _localizer["MyAccount"];
return View();
}
私のリソースファイルは、私のアプリのルートにリソースという名前のフォルダに配置され、そして、呼ばれています。
- Language.da-DK.resx
- L anguage.resx
_localizer ["MyAccount"]; 文字列 "MyAccount"を、ローカリゼーションで何も見つからないかのように返します。
The Language.MyAccount;デフォルト値である「My account」が返されます。 誰もこの鍵のデンマーク語の翻訳を見つけることはできません。
誰でも私が間違っているのを見ることができますか?
'Startup.Configure'の先頭に' app.UseRequestLocalization(new RequestLocalizationOptions(...)) 'を追加しましたか?あなたには本当に 'services.Configure(...)'が必要なわけではありませんので、あなたには分かりません。 –
あなたの提案をありがとう、私はそれを試して、それは文化の問題に役立った。 今: - 文字列テスト=言語。マイアカウント; デンマーク語のテキストを返します: "Min konto" しかし、私はまだカンツを取得します - _localizer ["MyAccount"]; "MyAccount"以外の値を返します。これはキーであり、値ではありません。 私の問題は、私のリソースファイルが正しくロードされていないことと関係していると思います。 これに関する提案はありますか? –