You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Blazor中通过命令自动生成IStringLocalizer对应的多语言resx文件?

自动生成Blazor IStringLocalizer多语言Resx文件的方法

可以通过官方工具或社区工具实现命令行自动生成对应语言的Resx文件,以下是具体方案:

一、使用.NET官方内置命令(.NET 6+推荐)

.NET 6及以上版本提供了dotnet extract命令,可自动扫描项目中所有IStringLocalizer的调用,提取待翻译字符串并生成对应语言的Resx文件。

操作步骤:

  1. 确保项目已配置本地化基础支持(在Program.cs中添加):
builder.Services.AddLocalization(options => options.ResourcesPath = "Resources");

// 配置需要支持的目标语言
var supportedCultures = new[] { "en", "de" };
builder.Services.Configure<RequestLocalizationOptions>(options =>
{
    options.DefaultRequestCulture = new RequestCulture("en");
    options.SupportedCultures = supportedCultures.Select(c => new CultureInfo(c)).ToList();
    options.SupportedUICultures = options.SupportedCultures;
});
  1. 打开开发者命令提示符,进入项目根目录,执行以下命令生成对应语言的Resx文件:
# 生成英文Resx文件
dotnet extract --output Resources --culture en

# 生成德文Resx文件
dotnet extract --output Resources --culture de

执行后,工具会自动扫描项目中所有_localizer["XXX"]格式的调用,生成Resources/MyPage.en.resx、Resources/MyPage.de.resx这类文件,提取到的原文字符串会作为默认值填充到Resx中,后续只需修改翻译内容即可。

二、低版本.NET的替代方案(.NET 5及以下)

如果项目基于.NET 5或更低版本,可使用社区工具ResXManager的命令行版本实现自动生成:

  1. 安装ResXManager命令行工具:
dotnet tool install -g ResXManager.CommandLine
  1. 执行命令扫描并生成Resx文件:
resxmanager export --source . --output Resources --cultures en,de --pattern "*.razor"

该工具会遍历项目中的Razor文件,识别IStringLocalizer的调用,生成对应语言的Resx文件。

注意事项

  • 确保页面中@inject IStringLocalizer<MyPage> _localizer的泛型参数MyPage与页面类名一致,工具才能正确关联对应的Resx文件。
  • 生成的Resx文件会自动放在配置的Resources目录下,需确保该目录已存在。

内容的提问来源于stack exchange,提问作者user3079834

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 10:41:32