Skip to content

Commit cb944d6

Browse files
committed
优化Provider的继承
1 parent cc1dfd2 commit cb944d6

2 files changed

Lines changed: 15 additions & 15 deletions

File tree

src/DynamicLocalization.Core/Providers/JsonLocalizationProvider.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,10 @@ public class JsonLocalizationProviderOptions
7575
/// </example>
7676
public class JsonLocalizationProvider : ILocalizationProvider<JsonLocalizationProviderOptions>
7777
{
78-
private readonly ConcurrentDictionary<string, Dictionary<string, string>> _cache = new();
79-
private JsonLocalizationProviderOptions? _options;
78+
protected readonly ConcurrentDictionary<string, Dictionary<string, string>> _cache = new();
79+
protected JsonLocalizationProviderOptions? _options;
8080

81-
public string Name => "Json";
81+
public virtual string Name => "Json";
8282

8383
public void Initialize(JsonLocalizationProviderOptions options)
8484
{
@@ -89,7 +89,7 @@ public void Initialize(JsonLocalizationProviderOptions options)
8989
/// <summary>
9090
/// Loads all localization resources.
9191
/// </summary>
92-
private void LoadAll()
92+
protected virtual void LoadAll()
9393
{
9494
if (_options == null) return;
9595

@@ -108,7 +108,7 @@ private void LoadAll()
108108
/// Resource naming format: {Assembly}.Localization.{culture}.json
109109
/// Example: AvaloniaLab.Localization.en.json
110110
/// </summary>
111-
private void LoadFromEmbeddedResources()
111+
protected virtual void LoadFromEmbeddedResources()
112112
{
113113
var assembly = _options!.Assembly ?? Assembly.GetCallingAssembly();
114114
var resourceNames = assembly.GetManifestResourceNames();
@@ -146,7 +146,7 @@ private void LoadFromEmbeddedResources()
146146
/// Example: AvaloniaLab.Localization.en.json -> en
147147
/// AvaloniaLab.Localization.zh-CN.json -> zh-CN
148148
/// </summary>
149-
private string? ExtractCultureName(string resourceName)
149+
protected virtual string? ExtractCultureName(string resourceName)
150150
{
151151
var parts = resourceName.Split('.');
152152

@@ -169,7 +169,7 @@ private void LoadFromEmbeddedResources()
169169
/// File naming format: {culture}.json
170170
/// Example: en.json, zh-CN.json
171171
/// </summary>
172-
private void LoadFromFiles()
172+
protected virtual void LoadFromFiles()
173173
{
174174
var basePath = _options!.BasePath;
175175

@@ -207,7 +207,7 @@ private void LoadFromFiles()
207207
/// Flat format: {"App.Title": "My App"} -> {"App.Title": "My App"}
208208
/// Nested format: {"App": {"Title": "My App"}} -> {"App.Title": "My App"}
209209
/// </example>
210-
private Dictionary<string, string>? ParseJsonToFlatDictionary(string json)
210+
protected virtual Dictionary<string, string>? ParseJsonToFlatDictionary(string json)
211211
{
212212
var result = new Dictionary<string, string>();
213213

@@ -239,7 +239,7 @@ private void LoadFromFiles()
239239
/// <param name="obj">JSON object to flatten</param>
240240
/// <param name="prefix">Current key prefix</param>
241241
/// <param name="result">Result dictionary to populate</param>
242-
private void FlattenJsonObject(JsonObject obj, string prefix, Dictionary<string, string> result)
242+
protected virtual void FlattenJsonObject(JsonObject obj, string prefix, Dictionary<string, string> result)
243243
{
244244
foreach (var property in obj)
245245
{
@@ -284,7 +284,7 @@ public IEnumerable<CultureInfo> GetAvailableCultures()
284284
return null;
285285
}
286286

287-
private bool TryGetFromCulture(string key, CultureInfo culture, out string? value)
287+
protected virtual bool TryGetFromCulture(string key, CultureInfo culture, out string? value)
288288
{
289289
value = null;
290290
if (_cache.TryGetValue(culture.Name, out var dict))

src/DynamicLocalization.Core/Providers/ResxLocalizationProvider.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,11 @@ public class ResxLocalizationProviderOptions
5757
/// </example>
5858
public class ResxLocalizationProvider : ILocalizationProvider<ResxLocalizationProviderOptions>
5959
{
60-
private ResourceManager? _resourceManager;
61-
private ResxLocalizationProviderOptions? _options;
62-
private List<CultureInfo>? _availableCultures;
60+
protected ResourceManager? _resourceManager;
61+
protected ResxLocalizationProviderOptions? _options;
62+
protected List<CultureInfo>? _availableCultures;
6363

64-
public string Name => "Resx";
64+
public virtual string Name => "Resx";
6565

6666
public void Initialize(ResxLocalizationProviderOptions options)
6767
{
@@ -73,7 +73,7 @@ public void Initialize(ResxLocalizationProviderOptions options)
7373
/// <summary>
7474
/// Detects available cultures from the resource assembly.
7575
/// </summary>
76-
private void DetectAvailableCultures()
76+
protected virtual void DetectAvailableCultures()
7777
{
7878
if (_options?.ResourceType == null || _resourceManager == null)
7979
{

0 commit comments

Comments
 (0)