fix #2700 - translation installation
This commit is contained in:
		@ -20,15 +20,6 @@ else
 | 
			
		||||
            <form @ref="form" class="@(validated ? "was-validated" : "needs-validation")" novalidate>
 | 
			
		||||
                <div class="container">
 | 
			
		||||
					<div class="row mb-1 align-items-center">
 | 
			
		||||
						<Label Class="col-sm-3" For="translated" HelpText="Specify If You Wish To Select Languages That Have Translations Installed" ResourceKey="Translated">Translated?</Label>
 | 
			
		||||
						<div class="col-sm-9">
 | 
			
		||||
							<select id="translated" class="form-select" value="@_translated" @onchange="(e => TranslatedChanged(e))" required>
 | 
			
		||||
								<option value="True">@SharedLocalizer["Yes"]</option>
 | 
			
		||||
								<option value="False">@SharedLocalizer["No"]</option>
 | 
			
		||||
							</select>
 | 
			
		||||
						</div>
 | 
			
		||||
					</div>
 | 
			
		||||
					<div class="row mb-1 align-items-center">
 | 
			
		||||
                        <Label Class="col-sm-3" For="name" HelpText="Name Of The Language" ResourceKey="Name">Name:</Label>
 | 
			
		||||
                        <div class="col-sm-9">
 | 
			
		||||
                            <select id="_code" class="form-select" @bind="@_code" required>
 | 
			
		||||
@ -73,7 +64,6 @@ else
 | 
			
		||||
	private ElementReference form;
 | 
			
		||||
	private bool validated = false;
 | 
			
		||||
 | 
			
		||||
	private string _translated = "True";
 | 
			
		||||
	private string _code = "-";
 | 
			
		||||
	private string _default = "False";
 | 
			
		||||
	private List<string> _languages;
 | 
			
		||||
@ -91,18 +81,11 @@ else
 | 
			
		||||
 | 
			
		||||
	private async Task LoadCultures()
 | 
			
		||||
	{
 | 
			
		||||
		_cultures = await LocalizationService.GetCulturesAsync(bool.Parse(_translated));
 | 
			
		||||
		_cultures = await LocalizationService.GetCulturesAsync(false);
 | 
			
		||||
		_cultures = _cultures.Where(c => !c.Name.Equals(Constants.DefaultCulture) && !_languages.Contains(c.Name));
 | 
			
		||||
		_code = "-";
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private async void TranslatedChanged(ChangeEventArgs e)
 | 
			
		||||
	{
 | 
			
		||||
		_translated = (string)e.Value;
 | 
			
		||||
		await LoadCultures();
 | 
			
		||||
		StateHasChanged();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private async Task SaveLanguage()
 | 
			
		||||
	{
 | 
			
		||||
		validated = true;
 | 
			
		||||
 | 
			
		||||
@ -35,14 +35,22 @@ else
 | 
			
		||||
			{
 | 
			
		||||
				<td>@((string.IsNullOrEmpty(context.Version)) ? "---" : context.Version)</td>
 | 
			
		||||
				<td>
 | 
			
		||||
					@switch (TranslationAvailable(context.Code, context.Version))
 | 
			
		||||
					@{
 | 
			
		||||
						var translation = TranslationAvailable(context.Code, context.Version);
 | 
			
		||||
					}
 | 
			
		||||
					@if (translation != null)
 | 
			
		||||
					{
 | 
			
		||||
						case "install":
 | 
			
		||||
							<button type="button" class="btn btn-success" @onclick=@(async () => await GetPackage(context.Code))>@SharedLocalizer["Download"]</button>
 | 
			
		||||
							break;
 | 
			
		||||
						case "upgrade":
 | 
			
		||||
							<button type="button" class="btn btn-success" @onclick=@(async () => await GetPackage(context.Code))>@SharedLocalizer["Upgrade"]</button>
 | 
			
		||||
							break;
 | 
			
		||||
						if (string.IsNullOrEmpty(context.Version))
 | 
			
		||||
						{
 | 
			
		||||
							<button type="button" class="btn btn-success" @onclick=@(async () => await GetPackage(context.Code, translation.Version))>@SharedLocalizer["Download"]</button>
 | 
			
		||||
						}
 | 
			
		||||
						else
 | 
			
		||||
						{
 | 
			
		||||
							if (Version.Parse(translation.Version).CompareTo(Version.Parse(context.Version)) > 0)
 | 
			
		||||
							{
 | 
			
		||||
								<button type="button" class="btn btn-success" @onclick=@(async () => await GetPackage(context.Code, translation.Version))>@SharedLocalizer["Upgrade"]</button>
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
				</td>
 | 
			
		||||
			}
 | 
			
		||||
@ -134,38 +142,16 @@ else
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private string TranslationAvailable(string code, string version)
 | 
			
		||||
	private Package TranslationAvailable(string code, string version)
 | 
			
		||||
	{
 | 
			
		||||
		if (_packages != null)
 | 
			
		||||
		{
 | 
			
		||||
			var package = _packages.Where(item => item.PackageId == (Constants.PackageId + "." + code)).FirstOrDefault();
 | 
			
		||||
			if (package != null)
 | 
			
		||||
			{
 | 
			
		||||
				// package version needs to match current framework version
 | 
			
		||||
				if (Version.Parse(package.Version).CompareTo(Version.Parse(Constants.Version)) == 0)
 | 
			
		||||
				{
 | 
			
		||||
					if (string.IsNullOrEmpty(version))
 | 
			
		||||
					{
 | 
			
		||||
						return "install";
 | 
			
		||||
					}
 | 
			
		||||
					else
 | 
			
		||||
					{
 | 
			
		||||
						if (Version.Parse(package.Version).CompareTo(Version.Parse(version)) > 0)
 | 
			
		||||
						{
 | 
			
		||||
							return "upgrade";
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
				}					
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return "";
 | 
			
		||||
		return _packages?.FirstOrDefault(item => item.PackageId == (Constants.PackageId + "." + code));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private async Task GetPackage(string code)
 | 
			
		||||
	private async Task GetPackage(string code, string version)
 | 
			
		||||
	{
 | 
			
		||||
		try
 | 
			
		||||
		{
 | 
			
		||||
			_package = await PackageService.GetPackageAsync(Constants.PackageId + "." + code, Constants.Version);
 | 
			
		||||
			_package = await PackageService.GetPackageAsync(Constants.PackageId + "." + code, version);
 | 
			
		||||
			StateHasChanged();
 | 
			
		||||
		}
 | 
			
		||||
		catch (Exception ex)
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user