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

时间:2019-04-05 17:24:34

标签: c# asp.net-core .net-core orchardcms po

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

1 个答案:

答案 0 :(得分:0)

注意
我在产品自己的github问题列表here上问了这个问题,我想在此处添加所有者答案以供将来参考,所有功劳都归于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>();