Allow installation of Language packages through Language Management

This commit is contained in:
Shaun Walker
2021-05-05 19:03:06 -04:00
parent e836e27a5a
commit 38aebf5aff
9 changed files with 145 additions and 49 deletions

View File

@ -1,6 +1,7 @@
@namespace Oqtane.Modules.Admin.Languages
@inherits ModuleBase
@inject ILanguageService LanguageService
@inject ILocalizationService LocalizationService
@inject IStringLocalizer<Index> Localizer
@if (_languages == null)
@ -19,7 +20,7 @@ else
<th>@Localizer["Default?"]</th>
</Header>
<Row>
<td><ActionDialog Header="Delete Langauge" Message="@Localizer["Are You Sure You Wish To Delete The {0} Language?", context.Name]" Action="Delete" Security="SecurityAccessLevel.Admin" Class="btn btn-danger" OnClick="@(async () => await DeleteLanguage(context))" Disabled="@(context.IsDefault)" ResourceKey="DeleteLanguage" /></td>
<td><ActionDialog Header="Delete Langauge" Message="@Localizer["Are You Sure You Wish To Delete The {0} Language From This Site?", context.Name]" Action="Delete" Security="SecurityAccessLevel.Admin" Class="btn btn-danger" OnClick="@(async () => await DeleteLanguage(context))" Disabled="@(context.IsDefault)" ResourceKey="DeleteLanguage" /></td>
<td>@context.Name</td>
<td>@context.Code</td>
<td><TriStateCheckBox Value="@(context.IsDefault)" Disabled="true"></TriStateCheckBox></td>
@ -35,6 +36,12 @@ else
protected override async Task OnParametersSetAsync()
{
_languages = await LanguageService.GetLanguagesAsync(PageState.Site.SiteId);
if (_languages.Count == 0)
{
var cultures = await LocalizationService.GetCulturesAsync();
var culture = cultures.First(c => c.Name.Equals(Constants.DefaultCulture));
_languages.Add(new Language { Name = culture.DisplayName, Code = culture.Name, IsDefault = culture.IsDefault });
}
}
private async Task DeleteLanguage(Language language)