using NCC.ConfigurableOptions; using NCC.Reflection; using Microsoft.Extensions.Configuration; using System; namespace NCC.Localization { /// /// 多语言配置选项 /// public sealed class LocalizationSettingsOptions : IConfigurableOptions { /// /// 资源路径 /// public string ResourcesPath { get; set; } /// /// 支持的语言列表 /// public string[] SupportedCultures { get; set; } /// /// 默认的语言 /// public string DefaultCulture { get; set; } /// /// 资源文件名前缀 /// public string LanguageFilePrefix { get; set; } /// /// 资源所在程序集名称 /// public string AssemblyName { get; set; } /// /// 选项后期配置 /// /// /// public void PostConfigure(LocalizationSettingsOptions options, IConfiguration configuration) { ResourcesPath ??= "Resources"; SupportedCultures ??= Array.Empty(); DefaultCulture ??= string.Empty; LanguageFilePrefix ??= "Lang"; AssemblyName ??= Reflect.GetAssemblyName(Reflect.GetEntryAssembly()); } } }