能够使用多个 po 文件进行本地化 asp.net core 2.2

Ability to use multiple po files for localization asp.net core 2.2

我正在使用 OrchardCore.Localization.Core NuGet 包并按照 this 教程将 asp.net 核心项目本地化。 一切正常,我有 en.pofr.po 等文件用于英语和法语的本地化。但我想将一些单词分成单独的文件,例如将 po 文件拆分为 en.pofr.poerrorlist.en.poerrorlist.fr.po。 我不是在寻找一种只为特殊文件等分离某些单词的聪明方法。我只想在单独的文件中包含一些单词,以避免每种语言都有一个大的 po 文件。 我不太确定我找不到关于此事的任何文档。 OrchardCore.Localization.Core NuGet 已经有这个功能了吗?或者我可以实施一些可以实现这一目标的东西吗?

注意
我在产品自己的 github 问题列表 here and i want to add the owner answer here for future reference, all credits to Sébastien Ros:

上问了这个问题

在同一个文档页面上,它提到您可以提供自己的逻辑来归档文件: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/portable-object-localization?view=aspnetcore-2.2#implementing-a-custom-logic-for-finding-localization-files

这意味着您可以复制此文件: https://github.com/OrchardCMS/OrchardCore/blob/dev/src/OrchardCore/OrchardCore.Localization.Core/ContentRootPoFileLocationProvider.cs

并根据您的需要调整 GetLocations() 方法,例如列出以特定文化结尾的所有文件,而不是返回单个 IFileInfo.

这是另一个在 OC Framework 中用于在多个模块文件夹中查找文件的示例: https://github.com/OrchardCMS/OrchardCore/blob/dev/src/OrchardCore.Modules/OrchardCore.Localization/ModularPoFileLocationProvider.cs

然后您可以像这样注册您的提供商:

services.AddSingleton<ILocalizationFileLocationProvider, MyPoFileLocationProvider>();