Create resource file Message.resx Message.vi-VN.resx
<?xml version="1.0" encoding="utf-8"?>
<root>
<data name="Welcome" xml:space="preserve">
<value>Welcome Ladies and Gentlemen</value>
</data>
</root>
<?xml version="1.0" encoding="utf-8"?>
<root>
<data name="Welcome" xml:space="preserve">
<value>Chào quí bà và quí ông</value>
</data>
</root>
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer localizer
@localizer["Welcome"]
public class HomeController : Controller{
IStringLocalizer<HomeController> localizer;
public HomeController(IStringLocalizer<HomeController> localizer)
=> this.localizer = localizer;
public IActionResult Index(){
ViewData["Title"] = localizer["Title"];
return View();
}
}
CultureInfo[] cultures = {
new CultureInfo("en-US"),
new CultureInfo("vi-VN")
};
builder.Services.Configure<RequestLocalizationOptions>(op => {
op.DefaultRequestCulture = new RequestCulture("vi-VN");
op.SupportedCultures= cultures;
op.SupportedUICultures= cultures;
op.RequestCultureProviders = new List<IRequestCultureProvider>{
new QueryStringRequestCultureProvider(),
new CookieRequestCultureProvider(),
};
});
app.UseRequestLocalization();
http://cse.net.vn?culture=vi-VN
http://cse.net.vn?culture=en-US
Response.Cookies.Append(CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(c)),
new CookieOptions { Expires = DateTimeOffset.UtcNow.AddMonths(1) }
);