Introduced a `LanguageControls` component for switching between languages (`de-DE`, `en-US`, `fr-FR`) and integrated a new `LocalizationService` to manage language preferences. Updated `LocalizationController` to handle language persistence via cookies and support multiple cultures. Enhanced the footer layout to include the language selector alongside theme controls. Added `flag-icons` library for displaying country flags and configured request localization in `Program.cs`. Styled the language selector dropdown and improved sender page visuals with updated CSS. Defaulted language handling to `de-DE` for fallback scenarios. Cleaned up redundant code in `LocalizationController`.
47 lines
1.4 KiB
Plaintext
47 lines
1.4 KiB
Plaintext
@using EnvelopeGenerator.Server.Client.Services
|
|
@inherits LayoutComponentBase
|
|
@implements IDisposable
|
|
|
|
@inject ThemeService ThemeService
|
|
|
|
<HeadContent>
|
|
<link href="@ThemeService.ThemeCssHref" rel="stylesheet" />
|
|
</HeadContent>
|
|
|
|
<div class="page" data-bs-theme="@ThemeService.BootstrapTheme">
|
|
<main>
|
|
<article class="content">
|
|
@Body
|
|
</article>
|
|
</main>
|
|
<footer class="receiver-footer">
|
|
<div class="receiver-footer__left">
|
|
<span>© SignFlow 2023-2024 <a href="https://digitaldata.works" target="_blank" rel="noopener">Digital Data GmbH</a></span>
|
|
<span class="receiver-footer__sep">|</span>
|
|
<a href="docs/privacy-policy.de-DE.html" target="_blank" rel="noopener">Datenschutz</a>
|
|
</div>
|
|
|
|
<div class="receiver-footer__right">
|
|
<LanguageControls />
|
|
<ThemeControls />
|
|
</div>
|
|
</footer>
|
|
</div>
|
|
|
|
@code {
|
|
[Inject] IHttpClientFactory HttpClientFactory { get; set; } = default!;
|
|
|
|
private Action? _themeChangeHandler;
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
await FontLoader.LoadFonts(HttpClientFactory, ["opensans.ttf"]);
|
|
_themeChangeHandler = () => InvokeAsync(StateHasChanged);
|
|
ThemeService.OnChange += _themeChangeHandler;
|
|
await base.OnInitializedAsync();
|
|
}
|
|
|
|
public void Dispose()
|
|
=> ThemeService.OnChange -= _themeChangeHandler;
|
|
}
|