Sparkdo.Localization 1.0.1

There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package Sparkdo.Localization --version 1.0.1
                    
NuGet\Install-Package Sparkdo.Localization -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Sparkdo.Localization" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Sparkdo.Localization" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Sparkdo.Localization" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Sparkdo.Localization --version 1.0.1
                    
#r "nuget: Sparkdo.Localization, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Sparkdo.Localization@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Sparkdo.Localization&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Sparkdo.Localization&version=1.0.1
                    
Install as a Cake Tool

Sparkdo.Localization

Sparkdo 本地化模块,提供完整的本地化功能实现。

功能特性

  • 多语言支持
  • 资源文件管理
  • 枚举本地化
  • 动态本地化贡献者
  • 与 Sparkdo 框架无缝集成

安装

<PackageReference Include="Sparkdo.Localization" Version="x.x.x" />

核心组件

本地化资源

  • LocalizationResource: 基于类型的本地化资源
  • NonTypedLocalizationResource: 非类型化本地化资源
  • LocalizationResourceBase: 本地化资源基类

本地化器

  • ISparkdoStringLocalizer: Sparkdo字符串本地化器接口
  • SparkdoDictionaryBasedStringLocalizer: 基于字典的字符串本地化器
  • SparkdoStringLocalizerFactory: 字符串本地化器工厂

枚举本地化

  • IEnumLocalizer: 枚举本地化器接口
  • DefaultEnumLocalizer: 默认枚举本地化器实现

语言管理

  • ILanguageProvider: 语言提供者接口
  • DefaultLanguageProvider: 默认语言提供者实现
  • ILanguageInfo: 语言信息接口
  • LanguageInfo: 语言信息实现

资源贡献者

  • ILocalizationResourceContributor: 本地化资源贡献者接口
  • LocalizationResourceContributorList: 本地化资源贡献者列表

使用方法

基本本地化配置

// 在模块配置中添加本地化资源
public override void Configure(IConfigureContext context)
{
    context.Services.Configure<SparkdoLocalizationOptions>(options =>
    {
        options
            .Resources
            .Add<MyResource>("zh-Hans")
            .AddVirtualJson("/Localization/Resources/MyResource");
    });
}

使用本地化器

// 注入字符串本地化器
public class MyService
{
    private readonly IStringLocalizer _localizer;
    
    public MyService(IStringLocalizer<MyResource> localizer)
    {
        _localizer = localizer;
    }
    
    public string GetLocalizedMessage()
    {
        return _localizer["MyKey"];
    }
}

枚举本地化

// 使用枚举本地化器
public class MyService
{
    private readonly IEnumLocalizer _enumLocalizer;
    
    public MyService(IEnumLocalizer enumLocalizer)
    {
        _enumLocalizer = enumLocalizer;
    }
    
    public string GetLocalizedEnumValue(MyEnum enumValue)
    {
        return _enumLocalizer.GetString(typeof(MyEnum), enumValue);
    }
}

扩展性

该库提供了完整的本地化功能实现,可以通过以下方式扩展:

  1. 实现自定义的 ILocalizationResourceContributor 来提供特定的本地化资源贡献者
  2. 实现自定义的 ILanguageProvider 来提供特定的语言列表
  3. 实现自定义的 IEnumLocalizer 来提供特定的枚举本地化逻辑
  4. 实现自定义的本地化资源管理逻辑

代码结构说明

本项目包含以下主要组件:

本地化核心

  • SparkdoStringLocalizerFactory: 字符串本地化器工厂,负责创建和管理本地化器实例
  • SparkdoDictionaryBasedStringLocalizer: 基于字典的字符串本地化器,提供核心本地化功能
  • LocalizationResource: 本地化资源,表示一个具体的本地化资源
  • LocalizationResourceBase: 本地化资源基类,定义资源的基本结构

枚举本地化

  • IEnumLocalizer: 枚举本地化器接口,定义枚举本地化的方法
  • DefaultEnumLocalizer: 默认枚举本地化器实现,提供基本的枚举本地化功能

语言管理

  • ILanguageProvider: 语言提供者接口,定义获取语言列表的方法
  • DefaultLanguageProvider: 默认语言提供者实现
  • ILanguageInfo: 语言信息接口,定义语言的基本信息
  • LanguageInfo: 语言信息实现

资源贡献者

  • ILocalizationResourceContributor: 本地化资源贡献者接口,定义贡献者的功能
  • LocalizationResourceContributorList: 本地化资源贡献者列表,管理多个贡献者

配置选项

  • SparkdoLocalizationOptions: 本地化选项,配置本地化功能的各种选项
  • SparkdoLocalizationOptionsExtensions: 本地化选项扩展方法

所有公共接口和类都添加了详细的 XML 文档注释,便于开发者理解和使用。

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (11)

Showing the top 5 NuGet packages that depend on Sparkdo.Localization:

Package Downloads
Sparkdo.MultiTenancy.Abstractions

Sparkdo 框架的多租户抽象实现。提供多租户功能的核心接口和抽象类定义。

Sparkdo.Timing

Sparkdo 时序处理库,提供时钟、时区处理和时间相关的功能

Sparkdo.Validation

Sparkdo 验证库,提供基于数据注解的对象验证功能实现

Sparkdo.ExceptionHandling

Sparkdo 异常处理库,提供统一的异常处理机制和错误信息转换功能

Sparkdo.Ddd.Application.Contracts

Sparkdo DDD应用层契约库,提供应用服务接口定义和数据传输对象(DTO)基类

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.2-preview.1 172 12/4/2025
1.0.1 2,828 11/27/2025
1.0.0 2,754 11/25/2025
1.0.0-preview.5 102 10/24/2025