LANCommander/LANCommander.Launcher/UI/Components/Footer.razor
Pat Hartl 5a32bbf890 Add localization support to launcher
Adds localization across the launcher and includes English, German, Spanish, French, Italian, Japanese, Korean, Dutch, Portuguese, Ukranian, and Chinese. These localizations were generated by Claude 3.5 and need to be reviewed by a human for accuracy.
2025-08-18 21:29:38 -05:00

81 lines
3.1 KiB
Text

@using LANCommander.Launcher.Models
@using System.Diagnostics
@inject SDK.Client Client
@inject InstallService InstallService
@inject GameService GameService
@inject NavigationManager NavigationManager
@inject LocalizationService LocalizationService
<Flex Justify="FlexJustify.Center" Align="FlexAlign.Center" Gap="FlexGap.Small" Class="footer">
<div style="flex: 1;">
@if (NavigationManager.Uri.Contains("/Depot"))
{
<Button Type="@ButtonType.Text" Icon="@IconType.Outline.Hdd" OnClick="@(() => NavigationManager.NavigateTo("/"))">@LocalizationService.GetString("Library")</Button>
}
else
{
if (Client.Settings?.EnableUserLibraries ?? false)
{
<ConnectionStateView>
<Online>
<Button Type="@ButtonType.Text" Icon="@IconType.Outline.AppstoreAdd" OnClick="@(() => NavigationManager.NavigateTo("/Depot"))">@LocalizationService.GetString("Depot")</Button>
</Online>
<Offline>
<Tooltip Title="@LocalizationService.GetString("YouAreCurrentlyOffline")" Placement="Placement.TopLeft">
<Button Type="@ButtonType.Text" Icon="@IconType.Outline.AppstoreAdd" Disabled>@LocalizationService.GetString("Depot")</Button>
</Tooltip>
</Offline>
</ConnectionStateView>
}
}
</div>
<ConnectionStateView>
<Online>
@if (InstallService.Queue.Any(qi => qi.State))
{
<div class="downloader" @onclick="() => ShowDownloadQueue()" style="flex-shrink: 0;">
<CurrentDownloadItem ShowIcon="true"/>
</div>
}
else
{
<Button Type="@ButtonType.Text" Icon="@IconType.Outline.Download" OnClick="() => ShowDownloadQueue()">@LocalizationService.GetString("Downloads")</Button>
}
</Online>
<Offline>
<Tooltip Title="@LocalizationService.GetString("YouAreCurrentlyOffline")" Placement="Placement.TopLeft">
<Button Type="@ButtonType.Text" Icon="@IconType.Outline.Download" Disabled>@LocalizationService.GetString("Downloads")</Button>
</Tooltip>
</Offline>
</ConnectionStateView>
<div style="flex: 1; text-align: right;">
<Tooltip Title="@LocalizationService.GetString("ComingSoon")" Placement="Placement.TopRight">
<Button Type="@ButtonType.Text" Icon="@IconType.Outline.Team" Disabled>@LocalizationService.GetString("Friends")</Button>
</Tooltip>
</div>
</Flex>
<DownloadQueue @ref="DownloadQueue" />
@code {
[CascadingParameter] public bool Connected { get; set; }
bool DownloadQueueVisible = false;
DownloadQueue DownloadQueue;
protected override async Task OnInitializedAsync()
{
InstallService.OnQueueChanged += async () =>
{
await InvokeAsync(StateHasChanged);
};
}
async Task ShowDownloadQueue()
{
await DownloadQueue.Show();
}
}