diff --git a/Oqtane.Client/Services/Interfaces/ILocalizationService.cs b/Oqtane.Client/Services/Interfaces/ILocalizationService.cs index 8a580cc6..b6cd7da0 100644 --- a/Oqtane.Client/Services/Interfaces/ILocalizationService.cs +++ b/Oqtane.Client/Services/Interfaces/ILocalizationService.cs @@ -6,8 +6,6 @@ namespace Oqtane.Services { public interface ILocalizationService { - Task GetDefaultCulture(); - - Task> GetSupportedCultures(); + Task> GetCulturesAsync(); } } diff --git a/Oqtane.Client/Services/LocalizationService.cs b/Oqtane.Client/Services/LocalizationService.cs index ea6e5fd8..b6c56bca 100644 --- a/Oqtane.Client/Services/LocalizationService.cs +++ b/Oqtane.Client/Services/LocalizationService.cs @@ -17,9 +17,6 @@ namespace Oqtane.Services private string Apiurl => CreateApiUrl(_siteState.Alias, "Localization"); - public async Task GetDefaultCulture() => await GetJsonAsync($"{Apiurl}/getDefaultCulture"); - - public async Task> GetSupportedCultures() - => await GetJsonAsync>($"{Apiurl}/getSupportedCultures"); + public async Task> GetCulturesAsync() => await GetJsonAsync>(Apiurl); } } diff --git a/Oqtane.Client/Themes/Controls/LanguageSwitcher.razor b/Oqtane.Client/Themes/Controls/LanguageSwitcher.razor index c8e7bfb9..ab61c2f4 100644 --- a/Oqtane.Client/Themes/Controls/LanguageSwitcher.razor +++ b/Oqtane.Client/Themes/Controls/LanguageSwitcher.razor @@ -31,7 +31,7 @@ { var interop = new Interop(JSRuntime); _selectedCulture = await interop.GetLocalStorage("OqtaneCulture"); - _supportedCultures = await LocalizationService.GetSupportedCultures(); + _supportedCultures = await LocalizationService.GetCulturesAsync(); } private async Task SetCultureAsync(string culture) diff --git a/Oqtane.Server/Controllers/LocalizationController.cs b/Oqtane.Server/Controllers/LocalizationController.cs index 46e475ef..84b54862 100644 --- a/Oqtane.Server/Controllers/LocalizationController.cs +++ b/Oqtane.Server/Controllers/LocalizationController.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.Globalization; using System.Linq; @@ -18,25 +19,14 @@ namespace Oqtane.Controllers _localizationManager = localizationManager; } - // GET: api/localization/getSupportedCultures - [HttpGet("getSupportedCultures")] - public IEnumerable GetSupportedCultures() + // GET: api/localization + [HttpGet()] + public IEnumerable Get() => _localizationManager.GetSupportedCultures().Select(c => new Culture { Name = CultureInfo.GetCultureInfo(c).Name, - DisplayName = CultureInfo.GetCultureInfo(c).DisplayName + DisplayName = CultureInfo.GetCultureInfo(c).DisplayName, + IsDefault = _localizationManager.GetDefaultCulture() + .Equals(CultureInfo.GetCultureInfo(c).Name, StringComparison.OrdinalIgnoreCase) }); - - // GET api/localization/getDefaultCulture - [HttpGet("getDefaultCulture")] - public Culture GetDefaultCulture() - { - var culture = _localizationManager.GetDefaultCulture(); - - return new Culture - { - Name = CultureInfo.GetCultureInfo(culture).Name, - DisplayName = CultureInfo.GetCultureInfo(culture).DisplayName - }; - } } } diff --git a/Oqtane.Shared/Models/Culture.cs b/Oqtane.Shared/Models/Culture.cs index 78d249d6..d426410d 100644 --- a/Oqtane.Shared/Models/Culture.cs +++ b/Oqtane.Shared/Models/Culture.cs @@ -5,5 +5,7 @@ namespace Oqtane.Models public string Name { get; set; } public string DisplayName { get; set; } + + public bool IsDefault { get; set; } } }