私は次のものを持っています:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddLocalization(o => { o.ResourcesPath = "Resources"; });
services.AddMvc(options =>{})
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
IList<CultureInfo> supportedCultures = new List<CultureInfo>
{
new CultureInfo("en"),
new CultureInfo("ko"),
};
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("en"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
});
......
}
私はIndex.cshtml
次のものを持っています(それは中にあります/Views/Home/
)。
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
......
<h2>@Localizer["QuickLinksTitle"].Value</h2>
そして、私は2つの持っている.resx
ファイルを、Index.en.resx
そしてIndex.ko.resx
内部/Resources/Views/Home
ただし、ファイルの値ではなく、常にビューが表示されます。QuickLinksTitle
.resx
どちらにも.resx
キーQuickLinksTitle
と対応するテキスト値がありますが、リソースファイルから何も読み取らないようです。
ブラウザが実際に正しい言語を送信していることを確認しました Accept-Language: ko,en-US;q=0.9,en;q=0.8
私の仮定は、私が与える場合@Localizer['Key']
、実際のキーではなく、そのキーの値を読み取る必要があるということです。
私はMSが私たちにそうしてほしいと思っていることを理解しています@Localizer["Some text in default lang"]
、そしてそれはデフォルト以外の言語のための鍵を持っています、しかし私はデフォルトの言語.resx
(英語)と他のすべての言語のために1つを持っていることを好みます。しかし、今のところ、.resx
ファイルから読み取ることすらできていません。
私はMSが私たちにそうしてほしいと思っていることを理解しています
@Localizer["Some text in default lang"]
、そしてそれはデフォルト以外の言語のための鍵を持っています、しかし私はデフォルト言語.resx
(英語)のためにそして他のすべての言語のために1つを持っていることを好みます。
それは実行可能です。ただし、.resx
ファイルでデフォルト言語を使用するための規則に従う必要があります。
デフォルトの言語をen
次のように設定しました:
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("en"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
});
ただし、次のローカライズされた .resx
ファイルを設定しましたen
。
/Resources/Views/Home/Index.en.resx
/Resources/Views/Home/Index.ko.resx
これは、デフォルト言語のデフォルト .resx
ファイルである必要がありますen
。
/Resources/Views/Home/Index.resx
/Resources/Views/Home/Index.ko.resx
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加