Xamarin Forms 中的 Humanizer 本地化问题

Humanizer Localization Issue in Xamarin Forms

在 Xamarin.Forms 应用程序中,我从核心(.Net 标准项目)调用 Humanizer 我正在为俄语使用 Nugets Humanizer.CoreHumanizer.Core.ru 包 并调用它
DateTime.UtcNow.AddMinutes(-3).Humanize(文化: new CultureInfo("ru-Ru"));

而且我总是会说英语 就像 3 分钟前

我试过申请:

CultureInfo ci = new CultureInfo("ru-Ru"); 
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;

而这些并没有影响结果,我又得到了英语。

我使用解决方法解决了问题。

  1. 我从 Nuget 中删除了所有 Humanize 包。
  2. 进入包目录:C:\Users\USERNAME\.nuget\packages
  3. 需要从下一个文件夹复制人性化 dll 文件:
  • humanizer.core\2.8.26\lib\netstandard2.0 (Humanizer.dll,Humanizer.xml)
  • humanizer.core.ru\2.8.26\lib\netstandard2.0(复制文件夹“ru”和文件 - ru\Humanizer.resources.dll)
  1. 在我的项目文件夹中,我创建了 CommonResources 文件夹。 然后我在 CommonResources 中创建了 Humanize 文件夹,并将 2 个文件和“ru”文件夹粘贴到我的 Humanize。

  1. 在这些 dll 上添加对 PCL 项目 yourProject.csproj 文件的引用。
  <ItemGroup> 
    .......
    <Reference Include="Humanizer.Core">
    <HintPath>..\..\CommonResources\Humanizer\Humanizer.dll</HintPath>
  </Reference> 
    <Reference Include="Humanizer.Core.ru">
    <HintPath>..\..\CommonResources\Humanizer\ru\Humanizer.resources.dll</HintPath>
  </Reference>
     ....... 
  <PackageReference Include="Xamarin.Forms" Version="5.0.0.2012" /> 
</ItemGroup> 

添加 dll 文件后,我将本地化文本添加到我的项目中。

谢谢@polyariz,我可以确认这仍然适用于 .NET MAUI,只需将 .dll 复制到 Resources 文件夹...

并通过右键单击“依赖项”和“添加项目引用...”将它们添加到项目中