Asp.Net Coreのローカリゼーションに関するMicrosoftのチュートリアルに従っています.Shutup.csファイルのデフォルトカルチャを変更する場合を除いてCultureは変更されません。Asp.net core 1.1ローカリゼーション、cultureを変更しない
// Startup.cs - ConfigureServices Method
services.AddLocalization(opts => { opts.ResourcesPath = "Resources"; });
services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();
// Startup.cs - Configure Method
var supportedCultures = new List<CultureInfo>
{
new CultureInfo("en-GB"),
new CultureInfo("fr-FR"),
...
};
app.UseRequestLocalization(new RequestLocalizationOptions()
{
DefaultRequestCulture = new RequestCulture("en-GB"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures,
RequestCultureProviders = new List<IRequestCultureProvider>()
});
// HomeController
public IActionResult SetLanguage(string culture, string returnUrl)
{
Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)),
new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) }
);
return LocalRedirect(returnUrl);
}
と私は好きアンカーリンクで言語を変更したい:私はクッキーが正常に設定、ページのリロードを取得しているが、ローカライズされたテキストが残っているリンクをクリックすると
<a asp-area="" asp-controller="Home" asp-action="SetLanguage" asp-route-culture="fr-FR" asp-route-returnUrl="@Context.Request.Path">FR</a>
同じ。 Startup.csファイルのDefaultRequestCultureを変更すると、カルチャが正常に表示されます(つまり、Resxファイルの名前が正しく指定されているなど)
クリックしたリンクに基づいて言語を変更するにはどうすればよいですか?私はまだ、誰もが、私は新しいソリューションを作り、問題はまだVS 2017年に発生した
EDIT 2 を助けることができるならば、私は場合のGithub上で私のVSプロジェクトをアップロードするソリューションを探しています
EDIT 誰も私が私の中にそのnugetパッケージを追加することで問題を解決することができたよりよく見てみると、私は
https://github.com/adonis07/Localization間違っEDIT 3
をやっているものを私に説明することができますソリューション Microsoft.AspNetCore.Authentication.Cookies。今、文化は適切に機能します。
は、この参照してください。https://stackoverflow.com/a/38499465/5417285を –