Dev18 Asked:2024-08-20 21:21:22 +0000 UTC2024-08-20 21:21:22 +0000 UTC 2024-08-20 21:21:22 +0000 UTC 如何在 Blazor 中添加翻译支持? 772 我正在 Blazor 中开发一个应用程序,并面临着添加对将界面翻译成多种语言的支持的任务。在 Blazor 中实现多语言支持的最佳方式是什么?我应该使用哪些库或方法? c# 1 个回答 Voted Best Answer Dev18 2024-08-20T21:21:22Z2024-08-20T21:21:22Z GitHub 上的源代码 要向 Blazor 添加翻译支持,请按照以下步骤操作: 添加一个控制器来设置文化:(该控制器将允许您在应用程序中的不同文化(语言)之间切换) using Microsoft.AspNetCore.Localization; using Microsoft.AspNetCore.Mvc; namespace TranslateSimple.Controller { [Route("[controller]/[action]")] public class CultureController : Microsoft.AspNetCore.Mvc.Controller { public IActionResult SetCulture(string culture, string redirectionUri) { if (culture != null) { HttpContext.Response.Cookies.Append( CookieRequestCultureProvider.DefaultCookieName, CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture))); } if (redirectionUri == null) redirectionUri = "/"; return LocalRedirect(redirectionUri); } } } 添加资源:(为您想要支持的每种语言等创建资源文件,Resources/Pages/Index.ru-RU.resx如俄语等) 在 Program.cs 中设置本地化:(您可以在此处指定支持的区域性和本地化设置。) ... builder.Services.AddLocalization(options => options.ResourcesPath = "Resources"); builder.Services.Configure<RequestLocalizationOptions>(options => { var supportedCultures = new List<CultureInfo>() { new CultureInfo("en-US"), new CultureInfo("es-ES"), new CultureInfo("de-DE"), new CultureInfo("fr") }; options.DefaultRequestCulture = new RequestCulture("fr"); options.SupportedCultures = supportedCultures; options.SupportedUICultures = supportedCultures; }); .... app.UseRequestLocalization(); 在 Razor 页面中使用本地化:(注入IStringLocalizer并使用它来输出本地化字符串。) @inject IStringLocalizer<Index> myLocalizer <p>@myLocalizer["Test"]</p> 官方文档
GitHub 上的源代码
要向 Blazor 添加翻译支持,请按照以下步骤操作:
Resources/Pages/Index.ru-RU.resx如俄语等)IStringLocalizer并使用它来输出本地化字符串。)官方文档