当您通过 IStringLocalizer 或 IHtmlLocalizer 使用 .net core 本地化时,您编写如下代码:_localizer[“my key”]。 这没问题,但现在您必须使用此 key=value 手动填充所有 .resx 文件。
这个想法是创建一个源生成器,仅在开发模式下,在编译期间才能获取 IStringLocalizer/IHtmlLocalizer 调用的所有键,然后检查 .resx 文件中该键是否可用。如果不向 resx 添加新行,如 key=key (对于值,我们在键上使用相同的字符串)。
这对开发人员有帮助,因为对于主要语言,resx 会自动填充,而对于其他语言,它会填充所有键,您只需要翻译值。
是否可以创建具有这种行为的源生成器?
我不知道可以执行您所描述的操作的工具,但有一个 Visual Studio 扩展(它也可以作为独立工具工作)可以帮助处理 resx 文件并使用它们 - ResXManager。您可以使用 Visual Studio 扩展管理器安装它。