- 定义所需的本地化资源文件,例如 MyResources.resx 和 MyResources.fr.resx。
- 在 Startup.ConfigureServices 方法中注册共享本地化资源:
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddScoped, ResourceManagerStringLocalizer>();
- 在需要的服务中使用共享本地化资源,例如在 HomeController 中:
public class HomeController : Controller
{
private readonly IStringLocalizer _localizer;
public HomeController(IStringLocalizer localizer)
{
_localizer = localizer;
}
public IActionResult Index()
{
ViewData["Message"] = _localizer["Welcome to my app!"].Value;
return View();
}
}
- 在需要的视图中使用共享本地化资源,例如在 Index.cshtml 中:
@inject IStringLocalizer Localizer
@Localizer["Welcome to my app!"].Value
- 对于专用本地化资源,将其添加到所需的 Razor 页面或控制器中:
options.ResourcesPath = "Resources/Views/MyController";
- 在视图中使用专用本地化资源,例如在 MyView.cshtml 中:
@inject IStringLocalizer Localizer
@Localizer["My localized string"].Value
- 可以在需要的地方覆盖共享本地化资源的任何值,例如在某个视图或控制器中:
services.AddScoped, JsonStringLocalizer>();
options.AddResxLocalization(options => options.ResourcesPath = "Localization");
services.AddScoped, ResourceManagerStringLocalizer>();
- 最后,在需要的位置注入新的本地化资源或使用 ASP.NET Core 7 内置的本地化资源。