@using TrafagSalesExporter.Security @implements IDisposable @inject TrafagSalesExporter.Services.IUiTextService UiText @inject TrafagSalesExporter.Services.IFinanceCockpitAccessService FinanceAccess @inject IConfiguration Configuration @inject NavigationManager Navigation @T("Export Dashboard", "Export dashboard") @T("Finance Summary", "Finance summary") @T("Laender", "Countries") @T("Datenstatus", "Data status") @T("Abweichungen", "Deviations") @T("Gutschriften", "Credit notes") @T("Datenqualitaet", "Data quality") @T("Sparten-Finanzanalyse", "Division finance") @T("Zentrale Spartenzuordnung", "Central division mapping") @T("Rohdaten Diagnose", "Raw-data diagnostics") @if (ShowFinanceComparison) { @T("Soll/Ist Vergleich", "Actual/reference comparison") } @T("Finance Schulung", "Finance training") @T("Manuelle Importe", "Manual imports") @T("Standorte", "Sites") @T("Transformationen", "Transformations") @T("Finance Regeln", "Finance rules") @T("Settings", "Settings") @T("Logs", "Logs") @if (FinanceAccess.IsEnabled && FinanceAccess.IsUnlocked) { @T("Finance sperren", "Lock finance") } @T("HR Dashboard", "HR dashboard") @T("HR KPI Schulung", "HR KPI training") @T("Admin Bereich", "Admin area") @code { private bool ShowFinanceComparison => Configuration.GetValue("Navigation:ShowFinanceComparison", true); protected override void OnInitialized() { UiText.Changed += HandleLanguageChanged; } private void LockFinanceCockpit() { FinanceAccess.Lock(); Navigation.NavigateTo(string.Empty); } private void HandleLanguageChanged() { InvokeAsync(StateHasChanged); } private string T(string german, string english) => UiText.Text(german, english); public void Dispose() { UiText.Changed -= HandleLanguageChanged; } }