Blazor 多语言核心是 IStringLocalizer + .resx 资源文件 + 语言切换逻辑,不依赖 JS;需在 Program.cs 注册 AddLocalization(),按规范命名资源文件(如 SharedResource.zh-CN.resx),组件中 @inject IStringLocalizer 使用,Server/WASM 切换文化方式不同但均原生支持。

Blazor 中使用 IStringLocalizer 实现多语言,核心是结合 .NET 的本地化服务 + 资源文件(.resx)+ 语言切换逻辑。它不依赖 JavaScript,完全在 C# 层完成,适合 Server、WASM 和 Hybrid 项目。
配置本地化服务
在 Program.cs(.NET 6+)中注册本地化服务:
- Server 项目:调用
builder.Services.AddRazorComponents().AddInteractiveServerComponents()后,添加AddLocalization() - WASM 项目:同样调用
AddLocalization(),并确保资源文件被正确发布(默认会自动包含) - 语言文化需通过
RequestLocalizationOptions设置支持列表,例如new[] { "zh-CN", "en-US", "ja-JP" }
准备资源文件(.resx)
资源文件必须按命名规范放置,Blazor 才能自动匹配:
- 新建文件夹
Resources(推荐),在其中创建SharedResource.resx(默认语言,如中文) - 对应英文版:
SharedResource.en-US.resx;日文版:SharedResource.ja-JP.resx - 文件属性中,将
Build Action设为Embedded Resource,Custom Tool留空(不要设为 PublicResXFileCodeGenerator) - 类名不重要,但资源键名要统一,比如
WelcomeMessage,各语言文件里填对应翻译
在组件中注入并使用 IStringLocalizer
以 Razor 组件为例(如 Counter.razor):
标签: javascript java js app 多语言 本地化 c# .net red
还木有评论哦,快来抢沙发吧~