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

Blazor 中使用 IStringLocalizer 实现多语言,核心是结合 .NET 的本地化服务 + 资源文件(.resx)+ 语言切换逻辑。它不依赖 J*aScript,完全在 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):
PrestaShop 开源网店系统
PrestaShop 开源网店系统是一款针对web2.0设计的全功能、跨平台的免费开源电子商务解决方案,自08年1.0版本发布,短短两年时间,发展迅速,全球已超过四万家网店采用Prestashop进行布署。Prestashop 开源网店系统基于Smarty引擎编程设计,模块化设计,扩展性强,能轻易实现多种语言,多种货币浏览交易,支持Paypal等几乎所有的支付手段,是外贸网站建站的佳选。Prest
0
查看详情
- 顶部注入:
@inject IStringLocalizer<sharedresource> localizer</sharedresource>(注意泛型参数是资源类类型,不是字符串) - 使用方式:
@localizer["WelcomeMessage"]或带参数的@localizer["HelloName", @name] - 若资源类未显式定义(即只用 .resx),可借助一个空的
SharedResource.cs文件(内容仅public class SharedResource { }),让编译器生成类型引用
动态切换语言并持久化用户选择
切换语言本质是改变当前线程/请求的 CultureInfo,并在客户端保存偏好:
- Server 渲染:通过中间件或自定义
ICultureService在每次请求前设置HttpContext.Features.Get<irequestculturefeature>().RequestCulture</irequestculturefeature> - WASM 渲染:无法改线程文化,改用
JSInterop存 localStorage,再在App.razor中用CultureChanged事件触发重载,或配合N*igationManager.Refresh() - 推荐轻量方案:封装一个
LanguageService,提供ChangeLanguage(string culture)方法,内部更新CultureInfo.DefaultThreadCurrentCulture(WASM 不生效,仅作标记)+ 触发状态通知
基本上就这些。关键点是资源文件命名、注入方式、以及区分 Server/WASM 的文化切换机制。不需要第三方库,.NET 原生支持很稳。
以上就是Blazor IStringLocalizer 多语言实现教程的详细内容,更多请关注其它相关文章!
# java
# javascript
# 设为
# 如何处理
# 开源
# 网店
# red
# .net
# c#
# 本地化
# 多语言
# app
# js
# 家政行业网站优化宣传
# dnf道具流seo稻
# 苹果手机推广网站有哪些
# 菜名翻译网站建设需要
# 提供网站备案建设服务
# 网站推广软文案
# 贵阳网站推广
# 南山网站优化排名公司
# 行者网站优化费用
# 绵阳专业网络推广营销
# 两年
# 如何在
# 不需要
# 数据格式
# 操作指南
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
在Go开发中优雅管理ListenAndServe进程:GoSublime集成方案
拼多多购物车商品数量无法修改如何处理 拼多多购物车操作优化方法
sublime如何优雅地处理行尾空格_sublime自动清理多余空白字符配置
c++项目目录结构应该如何组织_c++工程化项目结构规范
Win11如何开启讲述人功能 Win11屏幕阅读器(讲述人)开启与关闭【教程】
J*a应用集成GitHub CLI与API认证指南
解决深度学习模型训练初期异常高损失与完美验证准确率问题
12306怎么选座位选到安静区_12306选座安静区域选择策略
必由学在线入口 必由学网页版快速登录入口
荣耀Play7T运行卡顿解决_荣耀Play7T性能优化
php源码怎么在电脑上测试_电脑测试php源码方法步骤【教程】
Golang如何测试channel通信行为_Golang channel通信测试与分析方法
Linux如何排查内存不足OOME问题_LinuxOOM分析教程
高德地图家和公司地址在哪设置 高德地图通勤路线设置方法【超详细】
sublime怎么格式化代码_sublime代码美化与一键排版插件配置
在FastAPI中利用lifespan与依赖注入高效管理Redis连接池
如何优雅地扩展SprykerGlue后端API授权逻辑,使用spryker/glue-backend-api-application-authorization-connector-extension
CSS自定义字体样式被系统字体替换怎么办_font-face方式指定font-display控制渲染策略
高德地图沿途添加点失败如何解决 高德多点规划方法
css链接悬停下划线样式如何自定义_使用::after结合content和transition
css卡片内容溢出如何处理_使用overflow隐藏或scroll显示内容
AO3网页版合集入口 Archive of Our Own同人作品浏览指南
AO3同人作品网入口 AO3搜索引擎官网永久地址
菜鸟取件码是什么怎么查 最全查询渠道汇总
c++ dfs和bfs代码 c++深度广度优先搜索算法
单12V-2×6实现为RTX 5090供电750W!甚至都没敢跑分
怎样更改Windows系统的默认安装路径_避免C盘爆满的终极设置【技巧】
win11怎么查看应用耗电情况 Win11电池设置查看应用能耗排行榜【优化】
UC浏览器如何安装插件 UC浏览器添加扩展程序详细教程【进阶】
J*aScript类型检查_j*ascript代码规范
神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正
德邦快递查询平台 德邦快递物流信息查询入口
C++如何操作注册表_Windows平台下C++读写注册表的API函数详解
MAC如何安全彻底地删除文件_MAC使用终端命令确保文件无法被恢复
Surface怎么安装系统 微软Surface Pro U盘重装win11教程
Highcharts 雷达图径向轴标签定制指南:利用多Y轴实现数值标注
TypeScript/J*aScript:高效查找数组中首个唯一ID对象
夸克浏览器网页版最新地址 夸克浏览器官方入口合集
MongoDB聚合管道:正确匹配对象数组中_id的方法
谷歌google账号注册详细步骤 谷歌账号注册官方教程
AO3最新官网入口公告_2025AO3镜像站实时查询方法
zookeeper 都有哪些功能?
4399免费游戏网址入口 4399小游戏免费入口点开即玩
新手怎么开始学化妆 零基础化妆入门教程
HTML空白字符处理机制:渲染、DOM与编码实践
Animex动漫社网入口地址 Animex动漫社网正版在线入口
PHP中SSG-WSG API的AES加密实践:正确使用初始化向量
怎么在html里运行vbs脚本_html中运行vbs脚本方法【教程】
免费抖音短视频入口_抖音网页版短视频免费通道
sublime怎么覆盖插件的默认快捷键_sublime快捷键优先级与设置


2025-12-13
浏览次数:次
返回列表
配置本地化服务