LANCommander/LANCommander.Launcher/UI/Components/KeepAliveContainer.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

78 lines
No EOL
2.5 KiB
Text

@implements IDisposable
@inject KeepAliveService KeepAliveService
@inject IMessageService MessageService
@inject LocalizationService LocalizationService
@code {
string ConnectionMessageKey = Guid.NewGuid().ToString();
protected override void OnInitialized()
{
KeepAliveService.ConnectionSevered += OnConnectionSevered;
KeepAliveService.ConnectionRetryNext += OnConnectionRetryNext;
KeepAliveService.ConnectionLostPermanently += OnConnectionLostPermanently;
KeepAliveService.ConnectionEstablished += OnConnectionEstablished;
}
void OnConnectionSevered(object? sender, EventArgs e)
{
var messageConfig = new MessageConfig
{
Key = ConnectionMessageKey,
Type = MessageType.Loading,
Content = LocalizationService.GetString("LostConnectionRetrying"),
Duration = 0,
};
MessageService.Open(messageConfig);
}
void OnConnectionRetryNext(object? sender, EventArgs e)
{
// show same lost-connection-message by replacing the message by its key
var retry = KeepAliveService.GetRetryCount();
var messageConfig = new MessageConfig
{
Key = ConnectionMessageKey,
Type = MessageType.Loading,
Content = LocalizationService.GetString("LostConnectionRetryingWithCount", retry.current, retry.total),
Duration = 0,
};
MessageService.Open(messageConfig);
}
void OnConnectionLostPermanently(object? sender, EventArgs e)
{
var messageConfig = new MessageConfig
{
Key = ConnectionMessageKey,
Type = MessageType.Error,
Content = LocalizationService.GetString("ServerUnavailableEnablingOfflineMode"),
Duration = 2.5,
};
MessageService.Open(messageConfig);
}
void OnConnectionEstablished(object? sender, EventArgs e)
{
var messageConfig = new MessageConfig
{
Key = ConnectionMessageKey,
Type = MessageType.Success,
Content = LocalizationService.GetString("ConnectionEstablished"),
Duration = 2.5,
};
MessageService.Open(messageConfig);
}
public void Dispose()
{
KeepAliveService.ConnectionSevered -= OnConnectionSevered;
KeepAliveService.ConnectionRetryNext -= OnConnectionRetryNext;
KeepAliveService.ConnectionLostPermanently -= OnConnectionLostPermanently;
KeepAliveService.ConnectionEstablished -= OnConnectionEstablished;
}
}