Files
Ai/TrafagSalesExporter/Services/UiTextService.cs
T
2026-06-11 12:22:52 +02:00

1047 lines
86 KiB
C#

namespace TrafagSalesExporter.Services;
public interface IUiTextService
{
string CurrentLanguage { get; }
event Action? Changed;
void SetLanguage(string language);
string Text(string german, string english);
}
public sealed class UiTextService : IUiTextService
{
private string _currentLanguage = "de";
private static readonly HashSet<string> SupportedLanguages = new(StringComparer.OrdinalIgnoreCase)
{
"de",
"en",
"es",
"it",
"hi"
};
private static readonly IReadOnlyDictionary<string, IReadOnlyDictionary<string, string>> Translations =
new Dictionary<string, IReadOnlyDictionary<string, string>>(StringComparer.OrdinalIgnoreCase)
{
["es"] = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
{
["Trafag Finance/Sales Management Cockpit"] = "Trafag Cockpit de finanzas y ventas",
["Willkommen im Trafag Analyse Dashboard"] = "Bienvenido al panel analítico de Trafag",
["Finance Cockpit"] = "Cockpit financiero",
["Finance Cockpit ist geschuetzt. Bitte separat anmelden."] = "El cockpit financiero está protegido. Inicie sesión por separado.",
["Finance-Cockpit-Zugang ist noch nicht konfiguriert. Bitte Username und PasswordHash in FinanceCockpitAccess konfigurieren."] = "El acceso al cockpit financiero aún no está configurado. Configure Username y PasswordHash en FinanceCockpitAccess.",
["Export Dashboard"] = "Panel de exportación",
["Management Analyse"] = "Análisis de gestión",
["Soll/Ist Vergleich"] = "Comparación real/referencia",
["Finance Schulung"] = "Formación financiera",
["Manuelle Importe"] = "Importaciones manuales",
["Admin"] = "Administración",
["Standorte"] = "Sitios",
["Transformationen"] = "Transformaciones",
["Finance Regeln"] = "Reglas financieras",
["Settings"] = "Configuración",
["Logs"] = "Registros",
["Aktive Logins"] = "Inicios de sesión activos",
["Admin Bereich"] = "Área de administración",
["Adminbereich ist geschützt. Bitte anmelden."] = "El área de administración está protegida. Inicie sesión.",
["Admin-Zugang ist noch nicht konfiguriert."] = "El acceso de administrador aún no está configurado.",
["Admin entsperren"] = "Desbloquear administración",
["Admin-Anmeldung fehlgeschlagen."] = "Error al iniciar sesión como administrador.",
["Admin sperren"] = "Bloquear administración",
["Finance sperren"] = "Bloquear finanzas",
["HR KPI (Login)"] = "KPI RR. HH. (login)",
["HR Dashboard"] = "Panel HR",
["HR KPI Schulung"] = "Formación HR KPI",
["HR KPI enthaelt sensible Personaldaten. Bitte separat anmelden."] = "HR KPI contiene datos personales sensibles. Inicie sesión por separado.",
["HR-KPI-Zugang ist noch nicht konfiguriert. Bitte Username und PasswordHash in HrKpiAccess konfigurieren."] = "El acceso a HR KPI aún no está configurado. Configure Username y PasswordHash en HrKpiAccess.",
["HR KPI entsperren"] = "Desbloquear HR KPI",
["HR-KPI-Anmeldung fehlgeschlagen."] = "Error al iniciar sesión en HR KPI.",
["Name"] = "Nombre",
["Passwort"] = "Contraseña",
["Passwort ändern"] = "Cambiar contraseña",
["Aktuelles Passwort"] = "Contraseña actual",
["Neues Passwort"] = "Nueva contraseña",
["Mindestens 8 Zeichen."] = "Al menos 8 caracteres.",
["Neues Passwort wiederholen"] = "Repetir nueva contraseña",
["Passwort speichern"] = "Guardar contraseña",
["Das neue Passwort muss mindestens 8 Zeichen lang sein."] = "La nueva contraseña debe tener al menos 8 caracteres.",
["Die neuen Passwörter stimmen nicht überein."] = "Las nuevas contraseñas no coinciden.",
["Passwort konnte nicht geändert werden. Name oder aktuelles Passwort prüfen."] = "No se pudo cambiar la contraseña. Compruebe el nombre o la contraseña actual.",
["Passwort wurde geändert."] = "La contraseña se ha cambiado.",
["HR-/Finance-Cockpit Sessions"] = "Sesiones de cockpit HR/Finance",
["Startseite"] = "Página de inicio",
["Optionale Animation unter dem Willkommens-Text."] = "Animación opcional debajo del texto de bienvenida.",
["Strichmännchen anzeigen"] = "Mostrar figura de líneas",
["Gezählt werden App-interne Entsperrungen seit dem letzten App-Start."] = "Se cuentan los desbloqueos internos de la app desde el último inicio.",
["Bereich"] = "Área",
["IP-Adresse"] = "Dirección IP",
["Entsperrt seit"] = "Desbloqueado desde",
["Zuletzt gesehen"] = "Visto por última vez",
["Keine aktiven HR-/Finance-Logins erfasst."] = "No hay inicios de sesión HR/Finance activos registrados.",
["Hinweis: HR und Finance verwenden gemeinsame App-Logins. Diese Seite zeigt daher den verwendeten Login-Namen und die Session, nicht zwingend die echte Person."] = "Nota: HR y Finance usan logins compartidos de la app. Esta página muestra el nombre de login usado y la sesión, no necesariamente la persona real.",
["Finance Cockpit entsperren"] = "Desbloquear cockpit financiero",
["Finance-Jahr"] = "Año financiero",
["Finance Summary laden"] = "Cargar resumen financiero",
["Finance Summary"] = "Resumen financiero",
["Net Sales Actual"] = "Ventas netas reales",
["gefiltertes Endergebnis"] = "resultado final filtrado",
["Enthaltene Zeilen"] = "Filas incluidas",
["Finance Include = TRUE"] = "Finance Include = TRUE",
["Finance-Regeln"] = "Reglas financieras",
["Laender / Waehrungen"] = "Países / monedas",
["Summen wie im Excel-Blatt Finance Summary"] = "Totales como en la hoja Excel Finance Summary",
["Keine Finance-Summary-Daten fuer diese Filter."] = "No hay datos de resumen financiero para estos filtros.",
["Jahresvergleich mit aktuellem Filter"] = "Comparación anual con el filtro actual",
["Rohdaten Diagnose"] = "Diagnóstico de datos brutos",
["Diese Analyse ist eine Plausibilitaets- und Rohdatensicht. Fuer den verbindlichen Finance-Abgleich bitte `Soll/Ist Vergleich` oder im Endexcel die `Finance | ...`-Spalten verwenden."] = "Este análisis es una vista de plausibilidad y datos brutos. Para la reconciliación financiera vinculante, use `Comparación real/referencia` o las columnas `Finance | ...` en el Excel final.",
["Diese Regeln wirken nur auf die Finance-Sicht im zentralen Excel und im Abgleich. Rohdaten und Spaltenmapping bleiben unveraendert."] = "Estas reglas solo afectan la vista financiera en el Excel consolidado y en la reconciliación. Los datos brutos y el mapeo de columnas no cambian.",
["Finance-Cockpit-Anmeldung fehlgeschlagen."] = "Error al iniciar sesión en el cockpit financiero.",
["Alle exportieren"] = "Exportar todo",
["Zentrale Datei neu erzeugen"] = "Reconstruir archivo consolidado",
["Aktualisieren"] = "Actualizar",
["Lade..."] = "Cargando...",
["Speichern"] = "Guardar",
["Schliessen"] = "Cerrar",
["Regel hinzufuegen"] = "Añadir regla",
["Alle speichern"] = "Guardar todo",
["Code anzeigen"] = "Mostrar código",
["Land"] = "País",
["Laender"] = "Países",
["Aktiv"] = "Activo",
["Aktionen"] = "Acciones",
["Status"] = "Estado",
["Basis"] = "Base",
["Quelle"] = "Fuente",
["Schema"] = "Esquema",
["Server"] = "Servidor",
["Zeilen"] = "Filas",
["Rechnungen"] = "Facturas",
["Waehrung"] = "Moneda",
["Differenz"] = "Diferencia",
["Berechnung"] = "Cálculo",
["Varianten"] = "Variantes",
["Referenz"] = "Referencia",
["Ist 2025"] = "Real 2025",
["Ampel"] = "Estado",
["Ohne Ist"] = "Sin valores reales vacíos",
["Varianten anzeigen"] = "mostrar variantes",
["Abgrenzung"] = "Alcance",
["Wert"] = "Valor",
["Jahr"] = "Año",
["Monat"] = "Mes",
["Tag"] = "Día",
["Hinweise"] = "Notas",
["Enthalten"] = "Incluido",
["Ausgeschlossen"] = "Excluido",
["Gefiltert"] = "Filtrado",
["Global"] = "Global",
["Top Kunden"] = "Clientes principales",
["Top Produktgruppen"] = "Grupos de productos principales",
["Datenqualitaet"] = "Calidad de datos",
["Management Aussagen"] = "Declaraciones de gestión",
["Nicht umgerechnet"] = "No convertido",
["Jahreswerte"] = "Valores anuales",
["Monatswerte"] = "Valores mensuales",
["Werte nach Quelle"] = "Valores por fuente",
["Werte nach Land"] = "Valores por país",
["Rohdaten Diagnose"] = "Diagnóstico de datos brutos",
["Vorhandene Excel-Datei"] = "Archivo Excel disponible",
["Summenfeld"] = "Campo de valor",
["Anzeige-Waehrung"] = "Moneda de visualización",
["Dateien laden"] = "Cargar archivos",
["Cockpit erzeugen"] = "Crear cockpit",
["Zentrale Auswertung laden"] = "Cargar análisis central",
["Datei / SharePoint-Ordner"] = "Archivo / carpeta SharePoint",
["Letzter Upload"] = "Última carga",
["Pfad pruefen"] = "Comprobar ruta",
["Importdateien"] = "Archivos de importación",
["Anleitung"] = "Guía",
["Excel bereitstellen"] = "Preparar Excel",
["Speichern und aktivieren"] = "Guardar y activar",
["Standort exportieren"] = "Exportar sitio",
["Zentrale Excel erzeugen"] = "Crear Excel consolidado",
["Finance pruefen"] = "Comprobar finanzas",
["Datei hochladen oder SharePoint-/UNC-Pfad eintragen."] = "Cargue un archivo o introduzca una ruta de SharePoint/UNC.",
["Pfad pruefen, Standort aktiv setzen und speichern."] = "Compruebe la ruta, active el sitio y guarde.",
["Im Export Dashboard den Standort starten. Die Daten landen in CentralSalesRecords."] = "Inicie el sitio en el panel de exportación. Los datos se escriben en CentralSalesRecords.",
["Danach `Zentrale Datei neu erzeugen` ausfuehren."] = "Después ejecute `Reconstruir archivo consolidado`.",
["Im Endexcel `Finance | ...` oder im Reiter `Soll/Ist Vergleich` kontrollieren."] = "Compruebe las columnas `Finance | ...` en el Excel final o la pestaña `Comparación real/referencia`.",
["Richtige Reihenfolge"] = "Orden correcto",
["Ein Standortexport aktualisiert die Datenbasis. Die zentrale Excel muss danach neu erzeugt werden."] = "Una exportación de sitio actualiza la base de datos. Después debe reconstruirse el Excel consolidado.",
["DE bleibt fachlich offen"] = "DE sigue pendiente a nivel funcional",
["Alphaplan ist technisch importierbar. Kundenlaender und Filter fuer den offiziellen DE-Istwert muessen noch bestaetigt werden."] = "Alphaplan puede importarse técnicamente. Los países de cliente y filtros para el valor real oficial de DE aún deben confirmarse.",
["Server-Hinweis"] = "Nota del servidor",
["Der Server braucht kein Microsoft Excel. XLSX/CSV wird direkt von der Anwendung gelesen."] = "El servidor no necesita Microsoft Excel. La aplicación lee XLSX/CSV directamente.",
["Datei hochgeladen."] = "Archivo cargado.",
["Upload fehlgeschlagen"] = "Error de carga",
["Speichern fehlgeschlagen"] = "Error al guardar",
["Ueberblick"] = "Resumen",
["Fluktuation"] = "Rotación",
["Austritte"] = "Salidas",
["Austritte nach Austrittsart"] = "Salidas por tipo",
["Austritte nach Organisation"] = "Salidas por organización",
["Absenzen"] = "Ausencias",
["Absenzen nach Organisation"] = "Ausencias por organización",
["Krankheitstage"] = "Días de enfermedad",
["Absenzen je Mitarbeiter"] = "Ausencias por empleado",
["Personalnr."] = "N.º personal",
["Organisation"] = "Organización",
["Kurz"] = "Corto",
["Lang"] = "Largo",
["Gesamt"] = "Total",
["Quote"] = "Tasa",
["Zeit / Ferien"] = "Tiempo / vacaciones",
["Kritische Restferien"] = "Vacaciones restantes críticas",
["Rest"] = "Restante",
["Ausstehend"] = "Pendiente",
["Mitarbeitende"] = "Empleados",
["Datenstatus"] = "Estado de datos",
["Headcount nach Organisation"] = "Plantilla por organización",
["HR-Ampel"] = "Estado RR. HH.",
["Schwere"] = "Gravedad",
["Bereich"] = "Área",
["Pruefpunkt"] = "Comprobación",
["Anzahl"] = "Cantidad",
["Hinweis"] = "Nota",
["Gruppe"] = "Grupo",
["Hoechste Absenzen"] = "Ausencias más altas",
["Kritische GLZ-Saldi"] = "Saldos horarios críticos",
["Saldo"] = "Saldo",
["Austritt"] = "Salida",
["Austrittsart"] = "Tipo de salida",
["Ausschlussgruende"] = "Motivos de exclusión",
["Grund"] = "Motivo",
["Kostenstelle"] = "Centro de coste",
["Alter"] = "Edad",
["Dienstjahre"] = "Años de servicio",
["Typ"] = "Tipo",
["Dateistatus"] = "Estado de archivos",
["Stand"] = "Modificado",
["Rexx exportieren"] = "Exportar desde Rexx",
["Die benoetigten Rexx-Abfragen manuell herunterladen. Excel/XLSX verwenden, nicht PDF."] = "Descargue manualmente las consultas Rexx necesarias. Use Excel/XLSX, no PDF.",
["Dateien ablegen"] = "Guardar archivos",
["Downloads in den Datenordner kopieren und exakt wie unten benennen."] = "Copie las descargas en la carpeta de datos y nómbrelas exactamente como se indica abajo.",
["Cockpit laden"] = "Cargar cockpit",
["Im HR-KPI-Cockpit den Datenordner kontrollieren und Laden klicken."] = "En el cockpit HR KPI, compruebe la carpeta de datos y haga clic en Cargar.",
["Datenstatus pruefen"] = "Comprobar estado de datos",
["Im Reiter Datenstatus muessen die erwarteten Dateien gruen erscheinen."] = "En la pestaña Estado de datos, los archivos esperados deben aparecer en verde.",
["Datenordner"] = "Carpeta de datos",
["Der Standardordner ist konfigurierbar. Fuer einen anderen Ordner oben im HR-KPI-Filter den Datenordner anpassen und neu laden."] = "La carpeta predeterminada es configurable. Para usar otra carpeta, cambie la carpeta de datos en el filtro HR KPI superior y vuelva a cargar.",
["HR-Dateien enthalten Personendaten. Nicht per E-Mail weiterleiten und keine Kopien in ungeschuetzten Ordnern liegen lassen."] = "Los archivos de HR contienen datos personales. No los reenvíe por correo electrónico ni deje copias en carpetas no protegidas.",
["Neue Auswertungen im Cockpit"] = "Nuevas vistas en el cockpit",
["Managementsicht anonymisiert Personendaten fuer Fuehrungsberichte."] = "La vista de gestión anonimiza los datos personales para informes directivos.",
["Dateistatus zeigt Pfad, Zeilen, Aenderungsdatum, Alter und Frische."] = "El estado de archivos muestra ruta, filas, fecha de modificación, antigüedad y frescura.",
["HR-Ampel fasst Fluktuation, Krankheit, GLZ, Restferien und Datenqualitaet zusammen."] = "El estado HR resume rotación, enfermedad, saldo horario, vacaciones restantes y calidad de datos.",
["GLZ- und Restferien-Ampeln koennen gefiltert werden."] = "Los estados de saldo horario y vacaciones restantes pueden filtrarse.",
["Periodenvergleich zeigt die wichtigsten Vorjahreswerte, soweit Daten vorhanden sind."] = "La comparación de periodos muestra los valores clave del año anterior cuando hay datos disponibles.",
["Datenqualitaet markiert fehlende Dateien, alte Dateien und auffaellige Werte."] = "La calidad de datos marca archivos faltantes, archivos antiguos y valores llamativos.",
["Austritte werden nach Austrittsart und Organisation gruppiert."] = "Las salidas se agrupan por tipo de salida y organización.",
["Absenzen werden nach Organisation ausgewertet."] = "Las ausencias se evalúan por organización.",
["Top-Absenzen und kritische Detailtabellen helfen bei der operativen Pruefung."] = "Las ausencias principales y tablas críticas ayudan en la revisión operativa.",
["Drucken/PDF erzeugt eine weitergebbare Ansicht aus dem Browser."] = "Imprimir/PDF crea una vista compartible desde el navegador.",
["Erwartete Dateien"] = "Archivos esperados",
["Inhalt"] = "Contenido",
["Datei/Pfad"] = "Archivo/ruta",
["gefunden"] = "encontrado",
["fehlt"] = "falta",
["Source Viewer"] = "Visor de código",
["Zurueck zur Transformation"] = "Volver a transformaciones",
["Datei:"] = "Archivo:",
["Klasse:"] = "Clase:",
["bei Zeile"] = "en línea",
["Kein Dateipfad angegeben."] = "No se indicó ninguna ruta de archivo.",
["Ungueltiger Dateipfad."] = "Ruta de archivo no válida.",
["Transformer Ansicht"] = "Vista de transformaciones",
["Transformationscode"] = "Código de transformación",
["Keine Beschreibung."] = "Sin descripción.",
["Optionales Argument."] = "Argumento opcional.",
["Einkauf"] = "Compras",
["Einkauf Dashboard"] = "Panel de compras",
["Einkauf Datenquellen"] = "Fuentes de datos de compras",
["Einkauf Cockpit"] = "Cockpit de compras",
["Spend, Lieferanten, offene Verpflichtungen"] = "Gasto, proveedores, compromisos abiertos",
["Operative Einkaufsanalyse mit Live-EKKO, klarer SAP-Datenpipeline, Simulationen und 3D-What-if-Ansicht."] = "Analisis operativo de compras con EKKO en vivo, canal SAP claro, simulaciones y vista 3D what-if.",
["Zeitraum"] = "Periodo",
["Alle Einkauf-Kennzahlen, Top-Listen und 3D-Daten werden auf diesen Zeitraum abgegrenzt."] = "Todos los KPIs de compras, listas principales y datos 3D se limitan a este periodo.",
["Von Monat"] = "Desde mes",
["Bis Monat"] = "Hasta mes",
["Anwenden"] = "Aplicar",
["Letzte 3 Jahre"] = "Ultimos 3 anos",
["Spend total"] = "Gasto total",
["Offene Bestellungen"] = "Pedidos abiertos",
["Verpflichtungen"] = "Compromisos",
["Lieferantenperformance"] = "Rendimiento de proveedores",
["Spend total vergangen"] = "Gasto historico total",
["Beschaffungsvolumen in CHF nach Jahr, Lieferant, Warengruppe und Artikel. Spend-Werte brauchen EKPO; bis SAP Positionen liefert, ist die Ansicht als Simulation markiert."] = "Volumen de compras en CHF por ano, proveedor, grupo de materiales y articulo. Los valores de gasto necesitan EKPO; hasta que SAP entregue posiciones, la vista queda marcada como simulacion.",
["Spend-Verlauf nach Einkaufsdimension"] = "Evolucion del gasto por dimension de compras",
["Offene Bestellwerte und Mengen"] = "Valores y cantidades de pedidos abiertos",
["Live-Bestellkoepfe aus EKKO sind angebunden. Offene Werte und Mengen brauchen zusaetzlich EKPO/EKET."] = "Las cabeceras de pedido en vivo de EKKO estan conectadas. Los valores y cantidades abiertos necesitan ademas EKPO/EKET.",
["Bestellaktivitaet und offene Positionen"] = "Actividad de pedidos y posiciones abiertas",
["Offene Verpflichtungen"] = "Compromisos abiertos",
["Restverpflichtungen werden aus EKET-Offenmenge und EKPO-Stueckwert berechnet und nach Lieferant, Artikel und Faelligkeitsmonat gezeigt."] = "Los compromisos restantes se calculan con cantidad abierta EKET y valor unitario EKPO y se muestran por proveedor, articulo y mes de vencimiento.",
["Top Verpflichtungen nach Lieferant, Artikel und Faelligkeit"] = "Compromisos principales por proveedor, articulo y vencimiento",
["Lieferantenbewertung und Performance"] = "Evaluacion y rendimiento de proveedores",
["Lieferantenbasis kommt live aus EKKO. Bewertung, Termintreue und Preisentwicklung brauchen spaeter EKPO/EKET und Reklamationsdaten."] = "La base de proveedores viene en vivo de EKKO. Evaluacion, puntualidad y evolucion de precios necesitaran EKPO/EKET y datos de reclamaciones.",
["Lieferantenbasis und Performance-Indikatoren"] = "Base de proveedores e indicadores de rendimiento",
["Weitere Einkaufsanalysen"] = "Mas analisis de compras",
["Analysen, die dem Einkauf neben PowerBI mehr Steuerung, Risiko- und Sparpotenzial zeigen."] = "Analisis que dan a compras mas control, riesgo y potencial de ahorro ademas de Power BI.",
["Prioritaet"] = "Prioridad",
["Ideen ausgearbeitet"] = "Ideas desarrolladas",
["Jede Idee ist als aufklappbarer Ausbau-Baustein beschrieben."] = "Cada idea se describe como bloque ampliable.",
["Bausteine"] = "bloques",
["Ziel"] = "Objetivo",
["Datenbasis"] = "Base de datos",
["Kennzahlen"] = "KPIs",
["Visualisierung"] = "Visualizacion",
["Umsetzung"] = "Implementacion",
["Zielbild"] = "Estado objetivo",
["Technische Umsetzung"] = "Implementacion tecnica",
["Refresh Steuerung"] = "Control de refresco",
["Full Load baut die korrekte Basis auf. Delta aktualisiert danach nur geaenderte Einkaufsbelege."] = "Full load crea la base correcta. Delta actualiza despues solo documentos de compra modificados.",
["Bestellkoepfe im Cache"] = "Cabeceras de pedido en cache",
["Positionen im Cache"] = "Posiciones en cache",
["Einteilungen im Cache"] = "Planificaciones en cache",
["Letzter Stand"] = "Ultimo estado",
["Full Load starten"] = "Iniciar full load",
["Delta aktualisieren"] = "Actualizar delta",
["Detail-Hotlist"] = "Hotlist de detalle",
["Direkt aus dem Einkauf-Cache berechnet, keine Simulation."] = "Calculado directamente desde el cache de compras, sin simulacion.",
["Objekt"] = "Objeto",
["Kennzahlen-Katalog fuer den naechsten Ausbau"] = "Catalogo de KPIs para la siguiente ampliacion",
["Fachlicher Ausbauplan mit Kennzahl, Dimension, Datenbasis und aktuellem Umsetzungsstand."] = "Plan funcional de ampliacion con KPI, dimension, base de datos y estado actual.",
["Analyse"] = "Analisis",
["Aus x.pbix uebernommene Seiten"] = "Paginas derivadas de x.pbix",
["Power-BI-Seite"] = "Pagina Power BI",
["Visuals"] = "Visuales",
["Dimensionen"] = "Dimensiones",
["Indikator"] = "Indicador",
["Grafik"] = "Grafico",
["Balken"] = "Barras",
["Linie"] = "Linea",
["Flaeche"] = "Superficie",
["Kreis"] = "Circular",
["Preis-/Wechselkurs-Szenario"] = "Escenario de precio/tipo de cambio",
["Beschriftung"] = "Etiquetas",
["Neu zeichnen"] = "Redibujar",
["SAP Datenfluss"] = "Flujo de datos SAP",
["Vom OData-Service bis zur Kennzahl sichtbar, welcher Baustein echt ist."] = "Desde el servicio OData hasta el KPI se ve que bloque es real.",
["Management Insights"] = "Insights de gestion",
["Live"] = "En vivo",
["Wartet"] = "Esperando",
["Simulation"] = "Simulacion",
["Analyseachsen"] = "Ejes de analisis",
["Verbindung"] = "Conexion",
["Quellsystem"] = "Sistema fuente",
["Leer lassen = zentrale SAP OData URL aus Settings verwenden."] = "Dejar vacio = usar la URL central SAP OData de ajustes.",
["Leer lassen = zentraler SAP User."] = "Dejar vacio = usuario SAP central.",
["Leer lassen = zentrales SAP Passwort."] = "Dejar vacio = contrasena SAP central.",
["Einkaufsquelle fuer Import aktivieren"] = "Activar fuente de compras para importacion",
["Verbindung testen"] = "Probar conexion",
["Defaults wiederherstellen"] = "Restaurar valores predeterminados",
["Aktuelle Basis"] = "Base actual",
["Zentrale URL"] = "URL central",
["Quellen"] = "Fuentes",
["Join-Fluss"] = "Flujo de joins",
["Links"] = "Izquierda",
["Rechts"] = "Derecha",
["Zielfelder"] = "Campos destino",
["Pflicht"] = "Obligatorio",
["Primaer"] = "Primario",
["Einkaufsdatenquellen gespeichert."] = "Fuentes de datos de compras guardadas.",
["Einkaufsdatenquellen auf Defaults gesetzt."] = "Fuentes de datos de compras restauradas a valores predeterminados.",
["Schreibt beim Laenderexport je Standort eine Sales_ProcessedMergeInput_*.csv mit den transformierten Daten."] = "Escribe una Sales_ProcessedMergeInput_*.csv por sitio durante la exportacion de paises con los datos transformados."
},
["it"] = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
{
["Trafag Finance/Sales Management Cockpit"] = "Cockpit Trafag finanza e vendite",
["Willkommen im Trafag Analyse Dashboard"] = "Benvenuto nel dashboard analitico Trafag",
["Finance Cockpit"] = "Cockpit finance",
["Finance Cockpit ist geschuetzt. Bitte separat anmelden."] = "Il cockpit finance è protetto. Effettuare un accesso separato.",
["Finance-Cockpit-Zugang ist noch nicht konfiguriert. Bitte Username und PasswordHash in FinanceCockpitAccess konfigurieren."] = "L'accesso al cockpit finance non è ancora configurato. Configurare Username e PasswordHash in FinanceCockpitAccess.",
["Export Dashboard"] = "Dashboard esportazioni",
["Management Analyse"] = "Analisi di gestione",
["Soll/Ist Vergleich"] = "Confronto consuntivo/riferimento",
["Finance Schulung"] = "Formazione finance",
["Manuelle Importe"] = "Import manuali",
["Admin"] = "Amministrazione",
["Standorte"] = "Sedi",
["Transformationen"] = "Trasformazioni",
["Finance Regeln"] = "Regole finance",
["Settings"] = "Impostazioni",
["Logs"] = "Log",
["Aktive Logins"] = "Login attivi",
["Admin Bereich"] = "Area admin",
["Adminbereich ist geschützt. Bitte anmelden."] = "L'area admin è protetta. Effettuare l'accesso.",
["Admin-Zugang ist noch nicht konfiguriert."] = "L'accesso admin non è ancora configurato.",
["Admin entsperren"] = "Sblocca admin",
["Admin-Anmeldung fehlgeschlagen."] = "Accesso admin non riuscito.",
["Admin sperren"] = "Blocca admin",
["Finance sperren"] = "Blocca finance",
["HR KPI (Login)"] = "KPI HR (login)",
["HR Dashboard"] = "Dashboard HR",
["HR KPI Schulung"] = "Formazione KPI HR",
["HR KPI enthaelt sensible Personaldaten. Bitte separat anmelden."] = "HR KPI contiene dati personali sensibili. Effettuare un accesso separato.",
["HR-KPI-Zugang ist noch nicht konfiguriert. Bitte Username und PasswordHash in HrKpiAccess konfigurieren."] = "L'accesso a HR KPI non è ancora configurato. Configurare Username e PasswordHash in HrKpiAccess.",
["HR KPI entsperren"] = "Sblocca HR KPI",
["HR-KPI-Anmeldung fehlgeschlagen."] = "Accesso a HR KPI non riuscito.",
["Name"] = "Nome",
["Passwort"] = "Password",
["Passwort ändern"] = "Cambia password",
["Aktuelles Passwort"] = "Password attuale",
["Neues Passwort"] = "Nuova password",
["Mindestens 8 Zeichen."] = "Almeno 8 caratteri.",
["Neues Passwort wiederholen"] = "Ripeti nuova password",
["Passwort speichern"] = "Salva password",
["Das neue Passwort muss mindestens 8 Zeichen lang sein."] = "La nuova password deve contenere almeno 8 caratteri.",
["Die neuen Passwörter stimmen nicht überein."] = "Le nuove password non corrispondono.",
["Passwort konnte nicht geändert werden. Name oder aktuelles Passwort prüfen."] = "Impossibile modificare la password. Controllare nome o password attuale.",
["Passwort wurde geändert."] = "La password è stata modificata.",
["HR-/Finance-Cockpit Sessions"] = "Sessioni cockpit HR/Finance",
["Startseite"] = "Pagina iniziale",
["Optionale Animation unter dem Willkommens-Text."] = "Animazione opzionale sotto il testo di benvenuto.",
["Strichmännchen anzeigen"] = "Mostra omino",
["Gezählt werden App-interne Entsperrungen seit dem letzten App-Start."] = "Vengono contati gli sblocchi interni dell'app dall'ultimo avvio.",
["Bereich"] = "Area",
["IP-Adresse"] = "Indirizzo IP",
["Entsperrt seit"] = "Sbloccato da",
["Zuletzt gesehen"] = "Ultima attività",
["Keine aktiven HR-/Finance-Logins erfasst."] = "Nessun login HR/Finance attivo registrato.",
["Hinweis: HR und Finance verwenden gemeinsame App-Logins. Diese Seite zeigt daher den verwendeten Login-Namen und die Session, nicht zwingend die echte Person."] = "Nota: HR e Finance usano login condivisi dell'app. Questa pagina mostra quindi il nome login usato e la sessione, non necessariamente la persona reale.",
["Finance Cockpit entsperren"] = "Sblocca cockpit finance",
["Finance-Jahr"] = "Anno finance",
["Finance Summary laden"] = "Carica riepilogo finance",
["Finance Summary"] = "Riepilogo finance",
["Net Sales Actual"] = "Vendite nette consuntive",
["gefiltertes Endergebnis"] = "risultato finale filtrato",
["Enthaltene Zeilen"] = "Righe incluse",
["Finance Include = TRUE"] = "Finance Include = TRUE",
["Finance-Regeln"] = "Regole finance",
["Laender / Waehrungen"] = "Paesi / valute",
["Summen wie im Excel-Blatt Finance Summary"] = "Totali come nel foglio Excel Finance Summary",
["Keine Finance-Summary-Daten fuer diese Filter."] = "Nessun dato di riepilogo finance per questi filtri.",
["Jahresvergleich mit aktuellem Filter"] = "Confronto annuale con filtro attuale",
["Rohdaten Diagnose"] = "Diagnosi dati grezzi",
["Diese Analyse ist eine Plausibilitaets- und Rohdatensicht. Fuer den verbindlichen Finance-Abgleich bitte `Soll/Ist Vergleich` oder im Endexcel die `Finance | ...`-Spalten verwenden."] = "Questa analisi è una vista di plausibilità e dati grezzi. Per la riconciliazione finance vincolante usare `Confronto consuntivo/riferimento` o le colonne `Finance | ...` nell'Excel finale.",
["Diese Regeln wirken nur auf die Finance-Sicht im zentralen Excel und im Abgleich. Rohdaten und Spaltenmapping bleiben unveraendert."] = "Queste regole agiscono solo sulla vista finance nell'Excel consolidato e nella riconciliazione. Dati grezzi e mapping colonne restano invariati.",
["Finance-Cockpit-Anmeldung fehlgeschlagen."] = "Accesso al cockpit finance non riuscito.",
["Alle exportieren"] = "Esporta tutto",
["Zentrale Datei neu erzeugen"] = "Ricrea file consolidato",
["Aktualisieren"] = "Aggiorna",
["Lade..."] = "Caricamento...",
["Speichern"] = "Salva",
["Schliessen"] = "Chiudi",
["Regel hinzufuegen"] = "Aggiungi regola",
["Alle speichern"] = "Salva tutto",
["Code anzeigen"] = "Mostra codice",
["Land"] = "Paese",
["Laender"] = "Paesi",
["Aktiv"] = "Attivo",
["Aktionen"] = "Azioni",
["Status"] = "Stato",
["Basis"] = "Base",
["Quelle"] = "Fonte",
["Schema"] = "Schema",
["Server"] = "Server",
["Zeilen"] = "Righe",
["Rechnungen"] = "Fatture",
["Waehrung"] = "Valuta",
["Differenz"] = "Differenza",
["Berechnung"] = "Calcolo",
["Varianten"] = "Varianti",
["Referenz"] = "Riferimento",
["Ist 2025"] = "Consuntivo 2025",
["Ampel"] = "Stato",
["Ohne Ist"] = "Senza consuntivi vuoti",
["Varianten anzeigen"] = "mostra varianti",
["Abgrenzung"] = "Ambito",
["Wert"] = "Valore",
["Jahr"] = "Anno",
["Monat"] = "Mese",
["Tag"] = "Giorno",
["Hinweise"] = "Note",
["Enthalten"] = "Incluso",
["Ausgeschlossen"] = "Escluso",
["Gefiltert"] = "Filtrato",
["Global"] = "Globale",
["Top Kunden"] = "Clienti principali",
["Top Produktgruppen"] = "Gruppi prodotto principali",
["Datenqualitaet"] = "Qualità dati",
["Management Aussagen"] = "Indicazioni management",
["Nicht umgerechnet"] = "Non convertito",
["Jahreswerte"] = "Valori annuali",
["Monatswerte"] = "Valori mensili",
["Werte nach Quelle"] = "Valori per fonte",
["Werte nach Land"] = "Valori per paese",
["Rohdaten Diagnose"] = "Diagnosi dati grezzi",
["Vorhandene Excel-Datei"] = "File Excel disponibile",
["Summenfeld"] = "Campo valore",
["Anzeige-Waehrung"] = "Valuta visualizzata",
["Dateien laden"] = "Carica file",
["Cockpit erzeugen"] = "Crea cockpit",
["Zentrale Auswertung laden"] = "Carica analisi centrale",
["Datei / SharePoint-Ordner"] = "File / cartella SharePoint",
["Letzter Upload"] = "Ultimo upload",
["Pfad pruefen"] = "Controlla percorso",
["Importdateien"] = "File di importazione",
["Anleitung"] = "Guida",
["Excel bereitstellen"] = "Prepara Excel",
["Speichern und aktivieren"] = "Salva e attiva",
["Standort exportieren"] = "Esporta sede",
["Zentrale Excel erzeugen"] = "Crea Excel consolidato",
["Finance pruefen"] = "Controlla finance",
["Datei hochladen oder SharePoint-/UNC-Pfad eintragen."] = "Caricare un file o inserire un percorso SharePoint/UNC.",
["Pfad pruefen, Standort aktiv setzen und speichern."] = "Controllare il percorso, attivare la sede e salvare.",
["Im Export Dashboard den Standort starten. Die Daten landen in CentralSalesRecords."] = "Avviare la sede nel dashboard esportazioni. I dati vengono scritti in CentralSalesRecords.",
["Danach `Zentrale Datei neu erzeugen` ausfuehren."] = "Poi eseguire `Ricrea file consolidato`.",
["Im Endexcel `Finance | ...` oder im Reiter `Soll/Ist Vergleich` kontrollieren."] = "Controllare le colonne `Finance | ...` nell'Excel finale o la scheda `Confronto consuntivo/riferimento`.",
["Richtige Reihenfolge"] = "Sequenza corretta",
["Ein Standortexport aktualisiert die Datenbasis. Die zentrale Excel muss danach neu erzeugt werden."] = "L'esportazione di una sede aggiorna la base dati. L'Excel consolidato deve poi essere ricreato.",
["DE bleibt fachlich offen"] = "DE resta aperta sul piano funzionale",
["Alphaplan ist technisch importierbar. Kundenlaender und Filter fuer den offiziellen DE-Istwert muessen noch bestaetigt werden."] = "Alphaplan è tecnicamente importabile. Paesi cliente e filtri per il valore consuntivo ufficiale DE devono ancora essere confermati.",
["Server-Hinweis"] = "Nota server",
["Der Server braucht kein Microsoft Excel. XLSX/CSV wird direkt von der Anwendung gelesen."] = "Il server non richiede Microsoft Excel. XLSX/CSV viene letto direttamente dall'applicazione.",
["Datei hochgeladen."] = "File caricato.",
["Upload fehlgeschlagen"] = "Upload non riuscito",
["Speichern fehlgeschlagen"] = "Salvataggio non riuscito",
["Ueberblick"] = "Panoramica",
["Fluktuation"] = "Turnover",
["Austritte"] = "Uscite",
["Austritte nach Austrittsart"] = "Uscite per tipo",
["Austritte nach Organisation"] = "Uscite per organizzazione",
["Absenzen"] = "Assenze",
["Absenzen nach Organisation"] = "Assenze per organizzazione",
["Krankheitstage"] = "Giorni di malattia",
["Absenzen je Mitarbeiter"] = "Assenze per collaboratore",
["Personalnr."] = "N. personale",
["Organisation"] = "Organizzazione",
["Kurz"] = "Breve",
["Lang"] = "Lungo",
["Gesamt"] = "Totale",
["Quote"] = "Tasso",
["Zeit / Ferien"] = "Tempo / ferie",
["Kritische Restferien"] = "Ferie residue critiche",
["Rest"] = "Residuo",
["Ausstehend"] = "Aperto",
["Mitarbeitende"] = "Collaboratori",
["Datenstatus"] = "Stato dati",
["Headcount nach Organisation"] = "Organico per organizzazione",
["HR-Ampel"] = "Stato HR",
["Schwere"] = "Gravità",
["Bereich"] = "Area",
["Pruefpunkt"] = "Controllo",
["Anzahl"] = "Numero",
["Hinweis"] = "Nota",
["Gruppe"] = "Gruppo",
["Hoechste Absenzen"] = "Assenze più alte",
["Kritische GLZ-Saldi"] = "Saldi orari critici",
["Saldo"] = "Saldo",
["Austritt"] = "Uscita",
["Austrittsart"] = "Tipo di uscita",
["Ausschlussgruende"] = "Motivi di esclusione",
["Grund"] = "Motivo",
["Kostenstelle"] = "Centro di costo",
["Alter"] = "Età",
["Dienstjahre"] = "Anni di servizio",
["Typ"] = "Tipo",
["Dateistatus"] = "Stato file",
["Stand"] = "Modificato",
["Rexx exportieren"] = "Esporta da Rexx",
["Die benoetigten Rexx-Abfragen manuell herunterladen. Excel/XLSX verwenden, nicht PDF."] = "Scaricare manualmente le query Rexx necessarie. Usare Excel/XLSX, non PDF.",
["Dateien ablegen"] = "Archivia file",
["Downloads in den Datenordner kopieren und exakt wie unten benennen."] = "Copiare i download nella cartella dati e denominarli esattamente come indicato sotto.",
["Cockpit laden"] = "Carica cockpit",
["Im HR-KPI-Cockpit den Datenordner kontrollieren und Laden klicken."] = "Nel cockpit HR KPI controllare la cartella dati e fare clic su Carica.",
["Datenstatus pruefen"] = "Controlla stato dati",
["Im Reiter Datenstatus muessen die erwarteten Dateien gruen erscheinen."] = "Nella scheda Stato dati i file attesi devono apparire in verde.",
["Datenordner"] = "Cartella dati",
["Der Standardordner ist konfigurierbar. Fuer einen anderen Ordner oben im HR-KPI-Filter den Datenordner anpassen und neu laden."] = "La cartella predefinita è configurabile. Per usare un'altra cartella, modificare la cartella dati nel filtro HR KPI in alto e ricaricare.",
["HR-Dateien enthalten Personendaten. Nicht per E-Mail weiterleiten und keine Kopien in ungeschuetzten Ordnern liegen lassen."] = "I file HR contengono dati personali. Non inoltrarli via e-mail e non lasciare copie in cartelle non protette.",
["Neue Auswertungen im Cockpit"] = "Nuove viste nel cockpit",
["Managementsicht anonymisiert Personendaten fuer Fuehrungsberichte."] = "La vista management anonimizza i dati personali per i report direzionali.",
["Dateistatus zeigt Pfad, Zeilen, Aenderungsdatum, Alter und Frische."] = "Lo stato file mostra percorso, righe, data modifica, età e freschezza.",
["HR-Ampel fasst Fluktuation, Krankheit, GLZ, Restferien und Datenqualitaet zusammen."] = "Lo stato HR riassume turnover, malattia, saldo orario, ferie residue e qualità dati.",
["GLZ- und Restferien-Ampeln koennen gefiltert werden."] = "Gli stati di saldo orario e ferie residue possono essere filtrati.",
["Periodenvergleich zeigt die wichtigsten Vorjahreswerte, soweit Daten vorhanden sind."] = "Il confronto periodi mostra i principali valori dell'anno precedente quando disponibili.",
["Datenqualitaet markiert fehlende Dateien, alte Dateien und auffaellige Werte."] = "La qualità dati segnala file mancanti, file vecchi e valori anomali.",
["Austritte werden nach Austrittsart und Organisation gruppiert."] = "Le uscite sono raggruppate per tipo di uscita e organizzazione.",
["Absenzen werden nach Organisation ausgewertet."] = "Le assenze sono analizzate per organizzazione.",
["Top-Absenzen und kritische Detailtabellen helfen bei der operativen Pruefung."] = "Le assenze principali e le tabelle critiche supportano il controllo operativo.",
["Drucken/PDF erzeugt eine weitergebbare Ansicht aus dem Browser."] = "Stampa/PDF crea dal browser una vista condivisibile.",
["Erwartete Dateien"] = "File attesi",
["Inhalt"] = "Contenuto",
["Datei/Pfad"] = "File/percorso",
["gefunden"] = "trovato",
["fehlt"] = "manca",
["Source Viewer"] = "Visualizzatore sorgente",
["Zurueck zur Transformation"] = "Torna alle trasformazioni",
["Datei:"] = "File:",
["Klasse:"] = "Classe:",
["bei Zeile"] = "alla riga",
["Kein Dateipfad angegeben."] = "Nessun percorso file indicato.",
["Ungueltiger Dateipfad."] = "Percorso file non valido.",
["Transformer Ansicht"] = "Vista trasformazioni",
["Transformationscode"] = "Codice trasformazione",
["Keine Beschreibung."] = "Nessuna descrizione.",
["Optionales Argument."] = "Argomento opzionale.",
["Einkauf"] = "Acquisti",
["Einkauf Dashboard"] = "Dashboard acquisti",
["Einkauf Datenquellen"] = "Fonti dati acquisti",
["Einkauf Cockpit"] = "Cockpit acquisti",
["Spend, Lieferanten, offene Verpflichtungen"] = "Spesa, fornitori, impegni aperti",
["Operative Einkaufsanalyse mit Live-EKKO, klarer SAP-Datenpipeline, Simulationen und 3D-What-if-Ansicht."] = "Analisi operativa acquisti con EKKO live, pipeline SAP chiara, simulazioni e vista 3D what-if.",
["Zeitraum"] = "Periodo",
["Alle Einkauf-Kennzahlen, Top-Listen und 3D-Daten werden auf diesen Zeitraum abgegrenzt."] = "Tutti i KPI acquisti, le top list e i dati 3D sono limitati a questo periodo.",
["Von Monat"] = "Da mese",
["Bis Monat"] = "A mese",
["Anwenden"] = "Applica",
["Letzte 3 Jahre"] = "Ultimi 3 anni",
["Spend total"] = "Spesa totale",
["Offene Bestellungen"] = "Ordini aperti",
["Verpflichtungen"] = "Impegni",
["Lieferantenperformance"] = "Performance fornitori",
["Spend total vergangen"] = "Spesa storica totale",
["Beschaffungsvolumen in CHF nach Jahr, Lieferant, Warengruppe und Artikel. Spend-Werte brauchen EKPO; bis SAP Positionen liefert, ist die Ansicht als Simulation markiert."] = "Volume acquisti in CHF per anno, fornitore, gruppo merce e articolo. I valori di spesa richiedono EKPO; finche SAP non fornisce le posizioni, la vista resta marcata come simulazione.",
["Spend-Verlauf nach Einkaufsdimension"] = "Andamento spesa per dimensione acquisti",
["Offene Bestellwerte und Mengen"] = "Valori e quantita ordini aperti",
["Live-Bestellkoepfe aus EKKO sind angebunden. Offene Werte und Mengen brauchen zusaetzlich EKPO/EKET."] = "Le testate ordine live da EKKO sono collegate. Valori e quantita aperte richiedono inoltre EKPO/EKET.",
["Bestellaktivitaet und offene Positionen"] = "Attivita ordini e posizioni aperte",
["Offene Verpflichtungen"] = "Impegni aperti",
["Restverpflichtungen werden aus EKET-Offenmenge und EKPO-Stueckwert berechnet und nach Lieferant, Artikel und Faelligkeitsmonat gezeigt."] = "Gli impegni residui sono calcolati da quantita aperta EKET e valore unitario EKPO e mostrati per fornitore, articolo e mese di scadenza.",
["Top Verpflichtungen nach Lieferant, Artikel und Faelligkeit"] = "Top impegni per fornitore, articolo e scadenza",
["Lieferantenbewertung und Performance"] = "Valutazione e performance fornitori",
["Lieferantenbasis kommt live aus EKKO. Bewertung, Termintreue und Preisentwicklung brauchen spaeter EKPO/EKET und Reklamationsdaten."] = "La base fornitori arriva live da EKKO. Valutazione, puntualita e andamento prezzi richiedono poi EKPO/EKET e dati reclami.",
["Lieferantenbasis und Performance-Indikatoren"] = "Base fornitori e indicatori di performance",
["Weitere Einkaufsanalysen"] = "Altre analisi acquisti",
["Analysen, die dem Einkauf neben PowerBI mehr Steuerung, Risiko- und Sparpotenzial zeigen."] = "Analisi che offrono agli acquisti piu controllo, rischio e potenziale risparmio oltre a Power BI.",
["Prioritaet"] = "Priorita",
["Ideen ausgearbeitet"] = "Idee sviluppate",
["Jede Idee ist als aufklappbarer Ausbau-Baustein beschrieben."] = "Ogni idea e descritta come blocco di ampliamento espandibile.",
["Bausteine"] = "blocchi",
["Ziel"] = "Obiettivo",
["Datenbasis"] = "Base dati",
["Kennzahlen"] = "KPI",
["Visualisierung"] = "Visualizzazione",
["Umsetzung"] = "Implementazione",
["Zielbild"] = "Stato target",
["Technische Umsetzung"] = "Implementazione tecnica",
["Refresh Steuerung"] = "Controllo refresh",
["Full Load baut die korrekte Basis auf. Delta aktualisiert danach nur geaenderte Einkaufsbelege."] = "Il full load crea la base corretta. Delta aggiorna poi solo i documenti acquisti modificati.",
["Bestellkoepfe im Cache"] = "Testate ordine in cache",
["Positionen im Cache"] = "Posizioni in cache",
["Einteilungen im Cache"] = "Schedulazioni in cache",
["Letzter Stand"] = "Ultimo stato",
["Full Load starten"] = "Avvia full load",
["Delta aktualisieren"] = "Aggiorna delta",
["Detail-Hotlist"] = "Hotlist dettagli",
["Direkt aus dem Einkauf-Cache berechnet, keine Simulation."] = "Calcolato direttamente dalla cache acquisti, senza simulazione.",
["Objekt"] = "Oggetto",
["Kennzahlen-Katalog fuer den naechsten Ausbau"] = "Catalogo KPI per il prossimo ampliamento",
["Fachlicher Ausbauplan mit Kennzahl, Dimension, Datenbasis und aktuellem Umsetzungsstand."] = "Piano funzionale di ampliamento con KPI, dimensione, base dati e stato attuale.",
["Analyse"] = "Analisi",
["Aus x.pbix uebernommene Seiten"] = "Pagine derivate da x.pbix",
["Power-BI-Seite"] = "Pagina Power BI",
["Visuals"] = "Visual",
["Dimensionen"] = "Dimensioni",
["Indikator"] = "Indicatore",
["Grafik"] = "Grafico",
["Balken"] = "Barre",
["Linie"] = "Linea",
["Flaeche"] = "Superficie",
["Kreis"] = "Torta",
["Preis-/Wechselkurs-Szenario"] = "Scenario prezzo/cambio",
["Beschriftung"] = "Etichette",
["Neu zeichnen"] = "Ridisegna",
["SAP Datenfluss"] = "Flusso dati SAP",
["Vom OData-Service bis zur Kennzahl sichtbar, welcher Baustein echt ist."] = "Dal servizio OData al KPI e visibile quale blocco e reale.",
["Management Insights"] = "Insight management",
["Live"] = "Live",
["Wartet"] = "In attesa",
["Simulation"] = "Simulazione",
["Analyseachsen"] = "Assi di analisi",
["Verbindung"] = "Connessione",
["Quellsystem"] = "Sistema sorgente",
["Leer lassen = zentrale SAP OData URL aus Settings verwenden."] = "Lasciare vuoto = usare l'URL SAP OData centrale dalle impostazioni.",
["Leer lassen = zentraler SAP User."] = "Lasciare vuoto = utente SAP centrale.",
["Leer lassen = zentrales SAP Passwort."] = "Lasciare vuoto = password SAP centrale.",
["Einkaufsquelle fuer Import aktivieren"] = "Attiva fonte acquisti per import",
["Verbindung testen"] = "Test connessione",
["Defaults wiederherstellen"] = "Ripristina default",
["Aktuelle Basis"] = "Base attuale",
["Zentrale URL"] = "URL centrale",
["Quellen"] = "Fonti",
["Join-Fluss"] = "Flusso join",
["Links"] = "Sinistra",
["Rechts"] = "Destra",
["Zielfelder"] = "Campi target",
["Pflicht"] = "Obbligatorio",
["Primaer"] = "Primario",
["Einkaufsdatenquellen gespeichert."] = "Fonti dati acquisti salvate.",
["Einkaufsdatenquellen auf Defaults gesetzt."] = "Fonti dati acquisti ripristinate ai default.",
["Schreibt beim Laenderexport je Standort eine Sales_ProcessedMergeInput_*.csv mit den transformierten Daten."] = "Scrive una Sales_ProcessedMergeInput_*.csv per sito durante l'esportazione dei Paesi con i dati trasformati."
},
["hi"] = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
{
["Trafag Finance/Sales Management Cockpit"] = "Trafag वित्त और बिक्री प्रबंधन कॉकपिट",
["Willkommen im Trafag Analyse Dashboard"] = "Trafag विश्लेषण डैशबोर्ड में आपका स्वागत है",
["Finance Cockpit"] = "वित्त कॉकपिट",
["Finance Cockpit ist geschuetzt. Bitte separat anmelden."] = "वित्त कॉकपिट सुरक्षित है. कृपया अलग से साइन इन करें.",
["Finance-Cockpit-Zugang ist noch nicht konfiguriert. Bitte Username und PasswordHash in FinanceCockpitAccess konfigurieren."] = "वित्त कॉकपिट एक्सेस अभी कॉन्फ़िगर नहीं है. कृपया FinanceCockpitAccess में Username और PasswordHash सेट करें.",
["Export Dashboard"] = "निर्यात डैशबोर्ड",
["Management Analyse"] = "प्रबंधन विश्लेषण",
["Soll/Ist Vergleich"] = "वास्तविक/संदर्भ तुलना",
["Finance Schulung"] = "वित्त प्रशिक्षण",
["Manuelle Importe"] = "मैनुअल आयात",
["Admin"] = "प्रशासन",
["Standorte"] = "साइटें",
["Transformationen"] = "रूपांतरण",
["Finance Regeln"] = "वित्त नियम",
["Settings"] = "सेटिंग्स",
["Logs"] = "लॉग",
["Aktive Logins"] = "सक्रिय लॉगिन",
["Admin Bereich"] = "Admin क्षेत्र",
["Adminbereich ist geschützt. Bitte anmelden."] = "Admin क्षेत्र सुरक्षित है. कृपया साइन इन करें.",
["Admin-Zugang ist noch nicht konfiguriert."] = "Admin एक्सेस अभी कॉन्फ़िगर नहीं है.",
["Admin entsperren"] = "Admin अनलॉक करें",
["Admin-Anmeldung fehlgeschlagen."] = "Admin साइन-इन विफल.",
["Admin sperren"] = "Admin लॉक करें",
["Finance sperren"] = "वित्त लॉक करें",
["HR KPI (Login)"] = "HR KPI (लॉगिन)",
["HR Dashboard"] = "HR डैशबोर्ड",
["HR KPI Schulung"] = "HR KPI प्रशिक्षण",
["HR KPI enthaelt sensible Personaldaten. Bitte separat anmelden."] = "HR KPI में संवेदनशील कर्मचारी डेटा है. कृपया अलग से साइन इन करें.",
["HR-KPI-Zugang ist noch nicht konfiguriert. Bitte Username und PasswordHash in HrKpiAccess konfigurieren."] = "HR KPI एक्सेस अभी कॉन्फ़िगर नहीं है. कृपया HrKpiAccess में Username और PasswordHash सेट करें.",
["HR KPI entsperren"] = "HR KPI अनलॉक करें",
["HR-KPI-Anmeldung fehlgeschlagen."] = "HR KPI साइन-इन विफल.",
["Name"] = "नाम",
["Passwort"] = "पासवर्ड",
["Passwort ändern"] = "पासवर्ड बदलें",
["Aktuelles Passwort"] = "वर्तमान पासवर्ड",
["Neues Passwort"] = "नया पासवर्ड",
["Mindestens 8 Zeichen."] = "कम से कम 8 अक्षर.",
["Neues Passwort wiederholen"] = "नया पासवर्ड दोहराएं",
["Passwort speichern"] = "पासवर्ड सहेजें",
["Das neue Passwort muss mindestens 8 Zeichen lang sein."] = "नया पासवर्ड कम से कम 8 अक्षरों का होना चाहिए.",
["Die neuen Passwörter stimmen nicht überein."] = "नए पासवर्ड मेल नहीं खाते.",
["Passwort konnte nicht geändert werden. Name oder aktuelles Passwort prüfen."] = "पासवर्ड बदला नहीं जा सका. नाम या वर्तमान पासवर्ड जांचें.",
["Passwort wurde geändert."] = "पासवर्ड बदल दिया गया.",
["HR-/Finance-Cockpit Sessions"] = "HR/Finance cockpit sessions",
["Startseite"] = "होम पेज",
["Optionale Animation unter dem Willkommens-Text."] = "स्वागत पाठ के नीचे वैकल्पिक animation.",
["Strichmännchen anzeigen"] = "स्टिक फिगर दिखाएं",
["Gezählt werden App-interne Entsperrungen seit dem letzten App-Start."] = "ऐप के पिछले प्रारंभ के बाद से आंतरिक अनलॉक गिने जाते हैं.",
["Bereich"] = "क्षेत्र",
["IP-Adresse"] = "IP पता",
["Entsperrt seit"] = "अनलॉक समय",
["Zuletzt gesehen"] = "अंतिम बार देखा गया",
["Keine aktiven HR-/Finance-Logins erfasst."] = "कोई सक्रिय HR/Finance लॉगिन दर्ज नहीं है.",
["Hinweis: HR und Finance verwenden gemeinsame App-Logins. Diese Seite zeigt daher den verwendeten Login-Namen und die Session, nicht zwingend die echte Person."] = "नोट: HR और Finance साझा ऐप लॉगिन का उपयोग करते हैं. इसलिए यह पेज उपयोग किया गया लॉगिन नाम और सत्र दिखाता है, जरूरी नहीं कि वास्तविक व्यक्ति.",
["Finance Cockpit entsperren"] = "वित्त कॉकपिट अनलॉक करें",
["Finance-Jahr"] = "वित्त वर्ष",
["Finance Summary laden"] = "वित्त सारांश लोड करें",
["Finance Summary"] = "वित्त सारांश",
["Net Sales Actual"] = "वास्तविक शुद्ध बिक्री",
["gefiltertes Endergebnis"] = "फ़िल्टर किया अंतिम परिणाम",
["Enthaltene Zeilen"] = "शामिल पंक्तियां",
["Finance Include = TRUE"] = "Finance Include = TRUE",
["Finance-Regeln"] = "वित्त नियम",
["Laender / Waehrungen"] = "देश / मुद्राएं",
["Summen wie im Excel-Blatt Finance Summary"] = "Excel शीट Finance Summary जैसे कुल",
["Keine Finance-Summary-Daten fuer diese Filter."] = "इन फ़िल्टरों के लिए कोई वित्त सारांश डेटा नहीं है.",
["Jahresvergleich mit aktuellem Filter"] = "वर्तमान फ़िल्टर के साथ वार्षिक तुलना",
["Rohdaten Diagnose"] = "कच्चे डेटा का निदान",
["Diese Analyse ist eine Plausibilitaets- und Rohdatensicht. Fuer den verbindlichen Finance-Abgleich bitte `Soll/Ist Vergleich` oder im Endexcel die `Finance | ...`-Spalten verwenden."] = "यह विश्लेषण विश्वसनीयता और कच्चे डेटा की दृश्य है. बाध्यकारी वित्त मिलान के लिए `वास्तविक/संदर्भ तुलना` या अंतिम Excel में `Finance | ...` कॉलम उपयोग करें.",
["Diese Regeln wirken nur auf die Finance-Sicht im zentralen Excel und im Abgleich. Rohdaten und Spaltenmapping bleiben unveraendert."] = "ये नियम केवल केंद्रीय Excel और मिलान की वित्त दृश्य पर लागू होते हैं. कच्चा डेटा और कॉलम मैपिंग अपरिवर्तित रहते हैं.",
["Finance-Cockpit-Anmeldung fehlgeschlagen."] = "वित्त कॉकपिट साइन-इन विफल.",
["Alle exportieren"] = "सभी निर्यात करें",
["Zentrale Datei neu erzeugen"] = "केंद्रीय फ़ाइल फिर बनाएं",
["Aktualisieren"] = "ताज़ा करें",
["Lade..."] = "लोड हो रहा है...",
["Speichern"] = "सहेजें",
["Schliessen"] = "बंद करें",
["Regel hinzufuegen"] = "नियम जोड़ें",
["Alle speichern"] = "सभी सहेजें",
["Code anzeigen"] = "कोड दिखाएं",
["Land"] = "देश",
["Laender"] = "देश",
["Aktiv"] = "सक्रिय",
["Aktionen"] = "कार्रवाई",
["Status"] = "स्थिति",
["Basis"] = "आधार",
["Quelle"] = "स्रोत",
["Schema"] = "स्कीमा",
["Server"] = "सर्वर",
["Zeilen"] = "पंक्तियां",
["Rechnungen"] = "चालान",
["Waehrung"] = "मुद्रा",
["Differenz"] = "अंतर",
["Berechnung"] = "गणना",
["Varianten"] = "वेरिएंट",
["Referenz"] = "संदर्भ",
["Ist 2025"] = "वास्तविक 2025",
["Ampel"] = "स्थिति",
["Ohne Ist"] = "खाली वास्तविक मानों के बिना",
["Varianten anzeigen"] = "वेरिएंट दिखाएं",
["Abgrenzung"] = "सीमा",
["Wert"] = "मूल्य",
["Jahr"] = "वर्ष",
["Monat"] = "महीना",
["Tag"] = "दिन",
["Hinweise"] = "नोट्स",
["Enthalten"] = "शामिल",
["Ausgeschlossen"] = "बहिष्कृत",
["Gefiltert"] = "फ़िल्टर किया गया",
["Global"] = "वैश्विक",
["Top Kunden"] = "शीर्ष ग्राहक",
["Top Produktgruppen"] = "शीर्ष उत्पाद समूह",
["Datenqualitaet"] = "डेटा गुणवत्ता",
["Management Aussagen"] = "प्रबंधन कथन",
["Nicht umgerechnet"] = "परिवर्तित नहीं",
["Jahreswerte"] = "वार्षिक मान",
["Monatswerte"] = "मासिक मान",
["Werte nach Quelle"] = "स्रोत के अनुसार मान",
["Werte nach Land"] = "देश के अनुसार मान",
["Rohdaten Diagnose"] = "कच्चे डेटा का निदान",
["Vorhandene Excel-Datei"] = "उपलब्ध Excel फ़ाइल",
["Summenfeld"] = "मान फ़ील्ड",
["Anzeige-Waehrung"] = "प्रदर्शन मुद्रा",
["Dateien laden"] = "फ़ाइलें लोड करें",
["Cockpit erzeugen"] = "कॉकपिट बनाएं",
["Zentrale Auswertung laden"] = "केंद्रीय विश्लेषण लोड करें",
["Datei / SharePoint-Ordner"] = "फ़ाइल / SharePoint फ़ोल्डर",
["Letzter Upload"] = "अंतिम अपलोड",
["Pfad pruefen"] = "पथ जांचें",
["Importdateien"] = "आयात फ़ाइलें",
["Anleitung"] = "गाइड",
["Excel bereitstellen"] = "Excel तैयार करें",
["Speichern und aktivieren"] = "सहेजें और सक्रिय करें",
["Standort exportieren"] = "साइट निर्यात करें",
["Zentrale Excel erzeugen"] = "केंद्रीय Excel बनाएं",
["Finance pruefen"] = "वित्त जांचें",
["Datei hochladen oder SharePoint-/UNC-Pfad eintragen."] = "फ़ाइल अपलोड करें या SharePoint/UNC पथ दर्ज करें.",
["Pfad pruefen, Standort aktiv setzen und speichern."] = "पथ जांचें, साइट सक्रिय करें और सहेजें.",
["Im Export Dashboard den Standort starten. Die Daten landen in CentralSalesRecords."] = "निर्यात डैशबोर्ड में साइट शुरू करें. डेटा CentralSalesRecords में लिखा जाएगा.",
["Danach `Zentrale Datei neu erzeugen` ausfuehren."] = "इसके बाद `केंद्रीय फ़ाइल फिर बनाएं` चलाएं.",
["Im Endexcel `Finance | ...` oder im Reiter `Soll/Ist Vergleich` kontrollieren."] = "अंतिम Excel में `Finance | ...` कॉलम या `वास्तविक/संदर्भ तुलना` टैब जांचें.",
["Richtige Reihenfolge"] = "सही क्रम",
["Ein Standortexport aktualisiert die Datenbasis. Die zentrale Excel muss danach neu erzeugt werden."] = "साइट निर्यात डेटा आधार अपडेट करता है. इसके बाद केंद्रीय Excel फिर बनाना होगा.",
["DE bleibt fachlich offen"] = "DE कार्यात्मक रूप से अभी खुला है",
["Alphaplan ist technisch importierbar. Kundenlaender und Filter fuer den offiziellen DE-Istwert muessen noch bestaetigt werden."] = "Alphaplan तकनीकी रूप से आयात योग्य है. आधिकारिक DE वास्तविक मान के लिए ग्राहक देश और फ़िल्टर अभी पुष्टि करने हैं.",
["Server-Hinweis"] = "सर्वर नोट",
["Der Server braucht kein Microsoft Excel. XLSX/CSV wird direkt von der Anwendung gelesen."] = "सर्वर को Microsoft Excel की आवश्यकता नहीं है. एप्लिकेशन XLSX/CSV सीधे पढ़ता है.",
["Datei hochgeladen."] = "फ़ाइल अपलोड हुई.",
["Upload fehlgeschlagen"] = "अपलोड विफल",
["Speichern fehlgeschlagen"] = "सहेजना विफल",
["Ueberblick"] = "अवलोकन",
["Fluktuation"] = "टर्नओवर",
["Austritte"] = "निकास",
["Austritte nach Austrittsart"] = "निकास प्रकार के अनुसार",
["Austritte nach Organisation"] = "संगठन के अनुसार निकास",
["Absenzen"] = "अनुपस्थिति",
["Absenzen nach Organisation"] = "संगठन के अनुसार अनुपस्थिति",
["Krankheitstage"] = "बीमारी के दिन",
["Absenzen je Mitarbeiter"] = "कर्मचारी के अनुसार अनुपस्थिति",
["Personalnr."] = "कर्मचारी संख्या",
["Organisation"] = "संगठन",
["Kurz"] = "छोटा",
["Lang"] = "लंबा",
["Gesamt"] = "कुल",
["Quote"] = "दर",
["Zeit / Ferien"] = "समय / छुट्टी",
["Kritische Restferien"] = "महत्वपूर्ण बची छुट्टी",
["Rest"] = "शेष",
["Ausstehend"] = "बकाया",
["Mitarbeitende"] = "कर्मचारी",
["Datenstatus"] = "डेटा स्थिति",
["Headcount nach Organisation"] = "संगठन के अनुसार हेडकाउंट",
["HR-Ampel"] = "HR स्थिति",
["Schwere"] = "गंभीरता",
["Bereich"] = "क्षेत्र",
["Pruefpunkt"] = "जांच बिंदु",
["Anzahl"] = "संख्या",
["Hinweis"] = "नोट",
["Gruppe"] = "समूह",
["Hoechste Absenzen"] = "सबसे अधिक अनुपस्थिति",
["Kritische GLZ-Saldi"] = "महत्वपूर्ण समय शेष",
["Saldo"] = "शेष",
["Austritt"] = "निकास",
["Austrittsart"] = "निकास प्रकार",
["Ausschlussgruende"] = "बहिष्करण कारण",
["Grund"] = "कारण",
["Kostenstelle"] = "लागत केंद्र",
["Alter"] = "आयु",
["Dienstjahre"] = "सेवा वर्ष",
["Typ"] = "प्रकार",
["Dateistatus"] = "फ़ाइल स्थिति",
["Stand"] = "संशोधित",
["Rexx exportieren"] = "Rexx से निर्यात करें",
["Die benoetigten Rexx-Abfragen manuell herunterladen. Excel/XLSX verwenden, nicht PDF."] = "ज़रूरी Rexx क्वेरी मैन्युअल रूप से डाउनलोड करें. Excel/XLSX इस्तेमाल करें, PDF नहीं.",
["Dateien ablegen"] = "फ़ाइलें रखें",
["Downloads in den Datenordner kopieren und exakt wie unten benennen."] = "डाउनलोड को डेटा फ़ोल्डर में कॉपी करें और नीचे दिए गए नामों से ही सहेजें.",
["Cockpit laden"] = "कॉकपिट लोड करें",
["Im HR-KPI-Cockpit den Datenordner kontrollieren und Laden klicken."] = "HR-KPI कॉकपिट में डेटा फ़ोल्डर जांचें और लोड पर क्लिक करें.",
["Datenstatus pruefen"] = "डेटा स्थिति जांचें",
["Im Reiter Datenstatus muessen die erwarteten Dateien gruen erscheinen."] = "डेटा स्थिति टैब में अपेक्षित फ़ाइलें हरी दिखनी चाहिए.",
["Datenordner"] = "डेटा फ़ोल्डर",
["Der Standardordner ist konfigurierbar. Fuer einen anderen Ordner oben im HR-KPI-Filter den Datenordner anpassen und neu laden."] = "डिफ़ॉल्ट फ़ोल्डर कॉन्फ़िगर किया जा सकता है. दूसरा फ़ोल्डर उपयोग करने के लिए ऊपर HR KPI फ़िल्टर में डेटा फ़ोल्डर बदलें और फिर लोड करें.",
["HR-Dateien enthalten Personendaten. Nicht per E-Mail weiterleiten und keine Kopien in ungeschuetzten Ordnern liegen lassen."] = "HR फ़ाइलों में व्यक्तिगत डेटा होता है. इन्हें ई-मेल से आगे न भेजें और असुरक्षित फ़ोल्डरों में कॉपी न छोड़ें.",
["Neue Auswertungen im Cockpit"] = "कॉकपिट में नई दृश्यावलियां",
["Managementsicht anonymisiert Personendaten fuer Fuehrungsberichte."] = "प्रबंधन दृश्य रिपोर्टों के लिए व्यक्तिगत डेटा को अनाम करता है.",
["Dateistatus zeigt Pfad, Zeilen, Aenderungsdatum, Alter und Frische."] = "फ़ाइल स्थिति पथ, पंक्तियां, संशोधन तिथि, आयु और ताजगी दिखाती है.",
["HR-Ampel fasst Fluktuation, Krankheit, GLZ, Restferien und Datenqualitaet zusammen."] = "HR स्थिति टर्नओवर, बीमारी, समय शेष, छुट्टी शेष और डेटा गुणवत्ता को सारांशित करती है.",
["GLZ- und Restferien-Ampeln koennen gefiltert werden."] = "समय शेष और छुट्टी शेष स्थितियों को फ़िल्टर किया जा सकता है.",
["Periodenvergleich zeigt die wichtigsten Vorjahreswerte, soweit Daten vorhanden sind."] = "अवधि तुलना उपलब्ध डेटा के अनुसार पिछले वर्ष के मुख्य मान दिखाती है.",
["Datenqualitaet markiert fehlende Dateien, alte Dateien und auffaellige Werte."] = "डेटा गुणवत्ता गुम फ़ाइलें, पुरानी फ़ाइलें और असामान्य मान चिह्नित करती है.",
["Austritte werden nach Austrittsart und Organisation gruppiert."] = "निकासों को निकास प्रकार और संगठन के अनुसार समूहित किया जाता है.",
["Absenzen werden nach Organisation ausgewertet."] = "अनुपस्थितियों का मूल्यांकन संगठन के अनुसार किया जाता है.",
["Top-Absenzen und kritische Detailtabellen helfen bei der operativen Pruefung."] = "शीर्ष अनुपस्थितियां और महत्वपूर्ण विवरण तालिकाएं संचालन जांच में मदद करती हैं.",
["Drucken/PDF erzeugt eine weitergebbare Ansicht aus dem Browser."] = "प्रिंट/PDF ब्राउज़र से साझा करने योग्य दृश्य बनाता है.",
["Erwartete Dateien"] = "अपेक्षित फ़ाइलें",
["Inhalt"] = "सामग्री",
["Datei/Pfad"] = "फ़ाइल/पथ",
["gefunden"] = "मिला",
["fehlt"] = "गुम",
["Source Viewer"] = "स्रोत दर्शक",
["Zurueck zur Transformation"] = "रूपांतरण पर वापस",
["Datei:"] = "फ़ाइल:",
["Klasse:"] = "क्लास:",
["bei Zeile"] = "पंक्ति पर",
["Kein Dateipfad angegeben."] = "कोई फ़ाइल पथ नहीं दिया गया.",
["Ungueltiger Dateipfad."] = "अमान्य फ़ाइल पथ.",
["Transformer Ansicht"] = "रूपांतरण दृश्य",
["Transformationscode"] = "रूपांतरण कोड",
["Keine Beschreibung."] = "कोई विवरण नहीं.",
["Optionales Argument."] = "वैकल्पिक तर्क.",
["Einkauf"] = "Kharid",
["Einkauf Dashboard"] = "Kharid dashboard",
["Einkauf Datenquellen"] = "Kharid data sources",
["Einkauf Cockpit"] = "Kharid cockpit",
["Spend, Lieferanten, offene Verpflichtungen"] = "Spend, suppliers, open commitments",
["Operative Einkaufsanalyse mit Live-EKKO, klarer SAP-Datenpipeline, Simulationen und 3D-What-if-Ansicht."] = "Live EKKO, clear SAP data pipeline, simulations aur 3D what-if ke saath operative purchasing analysis.",
["Zeitraum"] = "Period",
["Alle Einkauf-Kennzahlen, Top-Listen und 3D-Daten werden auf diesen Zeitraum abgegrenzt."] = "Sabhi purchasing KPIs, top lists aur 3D data is period tak limited hain.",
["Von Monat"] = "From month",
["Bis Monat"] = "To month",
["Anwenden"] = "Apply",
["Letzte 3 Jahre"] = "Last 3 years",
["Spend total"] = "Total spend",
["Offene Bestellungen"] = "Open orders",
["Verpflichtungen"] = "Commitments",
["Lieferantenperformance"] = "Supplier performance",
["Spend total vergangen"] = "Historic total spend",
["Beschaffungsvolumen in CHF nach Jahr, Lieferant, Warengruppe und Artikel. Spend-Werte brauchen EKPO; bis SAP Positionen liefert, ist die Ansicht als Simulation markiert."] = "Purchasing volume CHF me year, supplier, material group aur article ke hisab se. Spend values ko EKPO chahiye; SAP item rows aane tak view simulation ke roop me marked hai.",
["Spend-Verlauf nach Einkaufsdimension"] = "Spend trend by purchasing dimension",
["Offene Bestellwerte und Mengen"] = "Open order values and quantities",
["Live-Bestellkoepfe aus EKKO sind angebunden. Offene Werte und Mengen brauchen zusaetzlich EKPO/EKET."] = "EKKO ke live purchase-order headers connected hain. Open values aur quantities ke liye EKPO/EKET bhi chahiye.",
["Bestellaktivitaet und offene Positionen"] = "Order activity and open items",
["Offene Verpflichtungen"] = "Open commitments",
["Restverpflichtungen werden aus EKET-Offenmenge und EKPO-Stueckwert berechnet und nach Lieferant, Artikel und Faelligkeitsmonat gezeigt."] = "Remaining commitments EKET open quantity aur EKPO unit value se calculate hote hain aur supplier, article aur due month ke hisab se dikhte hain.",
["Top Verpflichtungen nach Lieferant, Artikel und Faelligkeit"] = "Top commitments by supplier, article and due date",
["Lieferantenbewertung und Performance"] = "Supplier rating and performance",
["Lieferantenbasis kommt live aus EKKO. Bewertung, Termintreue und Preisentwicklung brauchen spaeter EKPO/EKET und Reklamationsdaten."] = "Supplier base EKKO se live aata hai. Rating, delivery reliability aur price trend ke liye baad me EKPO/EKET aur claims data chahiye.",
["Lieferantenbasis und Performance-Indikatoren"] = "Supplier base and performance indicators",
["Weitere Einkaufsanalysen"] = "Additional purchasing analytics",
["Analysen, die dem Einkauf neben PowerBI mehr Steuerung, Risiko- und Sparpotenzial zeigen."] = "Power BI ke alawa purchasing ko zyada steering, risk aur saving potential dikhane wali analyses.",
["Prioritaet"] = "Priority",
["Ideen ausgearbeitet"] = "Ideas worked out",
["Jede Idee ist als aufklappbarer Ausbau-Baustein beschrieben."] = "Har idea expandable build-out block ke roop me described hai.",
["Bausteine"] = "blocks",
["Ziel"] = "Goal",
["Datenbasis"] = "Data basis",
["Kennzahlen"] = "KPIs",
["Visualisierung"] = "Visualisation",
["Umsetzung"] = "Implementation",
["Zielbild"] = "Target state",
["Technische Umsetzung"] = "Technical implementation",
["Refresh Steuerung"] = "Refresh control",
["Full Load baut die korrekte Basis auf. Delta aktualisiert danach nur geaenderte Einkaufsbelege."] = "Full load correct base banata hai. Delta uske baad sirf changed purchase documents update karta hai.",
["Bestellkoepfe im Cache"] = "Purchase headers in cache",
["Positionen im Cache"] = "Item rows in cache",
["Einteilungen im Cache"] = "Schedules in cache",
["Letzter Stand"] = "Latest state",
["Full Load starten"] = "Start full load",
["Delta aktualisieren"] = "Refresh delta",
["Detail-Hotlist"] = "Detail hotlist",
["Direkt aus dem Einkauf-Cache berechnet, keine Simulation."] = "Purchasing cache se directly calculated, simulation nahi.",
["Objekt"] = "Object",
["Kennzahlen-Katalog fuer den naechsten Ausbau"] = "KPI catalogue for next build-out",
["Fachlicher Ausbauplan mit Kennzahl, Dimension, Datenbasis und aktuellem Umsetzungsstand."] = "KPI, dimension, data basis aur current implementation status ke saath functional build-out plan.",
["Analyse"] = "Analysis",
["Aus x.pbix uebernommene Seiten"] = "Pages derived from x.pbix",
["Power-BI-Seite"] = "Power BI page",
["Visuals"] = "Visuals",
["Dimensionen"] = "Dimensions",
["Indikator"] = "Indicator",
["Grafik"] = "Chart",
["Balken"] = "Bars",
["Linie"] = "Line",
["Flaeche"] = "Surface",
["Kreis"] = "Pie",
["Preis-/Wechselkurs-Szenario"] = "Price/exchange-rate scenario",
["Beschriftung"] = "Labels",
["Neu zeichnen"] = "Redraw",
["SAP Datenfluss"] = "SAP data flow",
["Vom OData-Service bis zur Kennzahl sichtbar, welcher Baustein echt ist."] = "OData service se KPI tak visible hai kaunsa block real hai.",
["Management Insights"] = "Management insights",
["Live"] = "Live",
["Wartet"] = "Waiting",
["Simulation"] = "Simulation",
["Analyseachsen"] = "Analysis axes",
["Verbindung"] = "Connection",
["Quellsystem"] = "Source system",
["Leer lassen = zentrale SAP OData URL aus Settings verwenden."] = "Empty chhodne par settings ki central SAP OData URL use hogi.",
["Leer lassen = zentraler SAP User."] = "Empty chhodne par central SAP user use hoga.",
["Leer lassen = zentrales SAP Passwort."] = "Empty chhodne par central SAP password use hoga.",
["Einkaufsquelle fuer Import aktivieren"] = "Activate purchasing source for import",
["Verbindung testen"] = "Test connection",
["Defaults wiederherstellen"] = "Restore defaults",
["Aktuelle Basis"] = "Current basis",
["Zentrale URL"] = "Central URL",
["Quellen"] = "Sources",
["Join-Fluss"] = "Join flow",
["Links"] = "Left",
["Rechts"] = "Right",
["Zielfelder"] = "Target fields",
["Pflicht"] = "Required",
["Primaer"] = "Primary",
["Einkaufsdatenquellen gespeichert."] = "Purchasing data sources saved.",
["Einkaufsdatenquellen auf Defaults gesetzt."] = "Purchasing data sources restored to defaults.",
["Schreibt beim Laenderexport je Standort eine Sales_ProcessedMergeInput_*.csv mit den transformierten Daten."] = "Country export ke dauran har site ke liye transformed data wali Sales_ProcessedMergeInput_*.csv likhta hai."
}
};
public string CurrentLanguage => _currentLanguage;
public event Action? Changed;
public void SetLanguage(string language)
{
var normalized = NormalizeLanguage(language);
if (string.Equals(_currentLanguage, normalized, StringComparison.OrdinalIgnoreCase))
return;
_currentLanguage = normalized;
Changed?.Invoke();
}
public string Text(string german, string english)
{
if (string.Equals(_currentLanguage, "de", StringComparison.OrdinalIgnoreCase))
return german;
if (string.Equals(_currentLanguage, "en", StringComparison.OrdinalIgnoreCase))
return english;
return Translations.TryGetValue(_currentLanguage, out var languageTranslations) &&
languageTranslations.TryGetValue(german, out var translated)
? translated
: english;
}
private static string NormalizeLanguage(string language)
{
var normalized = (language ?? string.Empty).Trim().ToLowerInvariant();
if (normalized is "in" or "ind" or "india" or "hindi")
normalized = "hi";
return SupportedLanguages.Contains(normalized) ? normalized : "de";
}
}