From aee25f58213593e270a7b77390ff91879148e730 Mon Sep 17 00:00:00 2001 From: Hisham Bin Ateya Date: Tue, 3 Mar 2020 19:13:20 +0300 Subject: [PATCH] IStringLocalizer should look for {culture}.json --- samples/LocalizationSample/Resources/fr-FR.json | 3 +++ samples/LocalizationSample/Startup.cs | 5 +++-- .../JsonStringLocalizer.cs | 10 ++++------ 3 files changed, 10 insertions(+), 8 deletions(-) create mode 100644 samples/LocalizationSample/Resources/fr-FR.json diff --git a/samples/LocalizationSample/Resources/fr-FR.json b/samples/LocalizationSample/Resources/fr-FR.json new file mode 100644 index 0000000..cab740b --- /dev/null +++ b/samples/LocalizationSample/Resources/fr-FR.json @@ -0,0 +1,3 @@ +{ + "Hello": "Bonjour" +} diff --git a/samples/LocalizationSample/Startup.cs b/samples/LocalizationSample/Startup.cs index 7216346..fe01557 100644 --- a/samples/LocalizationSample/Startup.cs +++ b/samples/LocalizationSample/Startup.cs @@ -17,7 +17,7 @@ public void ConfigureServices(IServiceCollection services) services.AddJsonLocalization(options => options.ResourcesPath = "Resources"); } - public void Configure(IApplicationBuilder app, IHostEnvironment env, IStringLocalizer localizer) + public void Configure(IApplicationBuilder app, IHostEnvironment env, IStringLocalizer localizer1, IStringLocalizer localizer2) { var supportedCultures = new List { @@ -40,7 +40,8 @@ public void Configure(IApplicationBuilder app, IHostEnvironment env, IStringLoca app.Run(async (context) => { - await context.Response.WriteAsync($"{localizer["Hello"]}!!"); + await context.Response.WriteAsync($"{localizer1["Hello"]}!!"); + await context.Response.WriteAsync($"{localizer2["Hello"]}!!"); }); } diff --git a/src/My.Extensions.Localization.Json/JsonStringLocalizer.cs b/src/My.Extensions.Localization.Json/JsonStringLocalizer.cs index d98c751..9fc9ef4 100644 --- a/src/My.Extensions.Localization.Json/JsonStringLocalizer.cs +++ b/src/My.Extensions.Localization.Json/JsonStringLocalizer.cs @@ -20,7 +20,7 @@ public class JsonStringLocalizer : IStringLocalizer private readonly ILogger _logger; private string _searchedLocation; - + public JsonStringLocalizer( string resourcesPath, string resourceName, @@ -160,11 +160,9 @@ private void BuildResourcesCache(string culture) { _resourcesCache.GetOrAdd(culture, _ => { - var resourceFile = $"{culture}.json"; - if (_resourceName != null) - { - resourceFile = String.Join(".", _resourceName, resourceFile); - } + var resourceFile = string.IsNullOrEmpty(_resourceName) + ? $"{culture}.json" + : $"{_resourceName}.{culture}.json"; _searchedLocation = Path.Combine(_resourcesPath, resourceFile); IEnumerable> value = null;