feat(planning): explain and trace planning decisions
This commit is contained in:
1 parent
609b3dece9
commit
d7a13b0b1e
24 files changed
+6073
-342
No files matched your search
+98
-1
@@ -104,7 +104,104 @@
|
||||
"conflict": "Die Verpflichtungen können nicht gemeinsam erfüllt werden.",
|
||||
"incomplete": "Die Berechnung wurde vor Abschluss aller Qualitätsstufen beendet.",
|
||||
"error": "Bei der Planung ist ein unerwarteter Fehler aufgetreten.",
|
||||
"complete": "Plan berechnet."
|
||||
"complete": "Plan berechnet.",
|
||||
"whyPlacement": "Warum diese Platzierung",
|
||||
"placementNavigation": "Navigation der Platzierungserklärungen",
|
||||
"placement": "Platzierung",
|
||||
"placements": "Platzierungen",
|
||||
"decision": "Entscheidung",
|
||||
"of": "von",
|
||||
"first": "Erste Platzierung",
|
||||
"previous": "Vorherige Platzierung",
|
||||
"next": "Nächste Platzierung",
|
||||
"last": "Letzte Platzierung",
|
||||
"balance": "Anspruch",
|
||||
"rules": "Regeln",
|
||||
"noRules": "Keine Regel",
|
||||
"supporting": "Unterstützende Platzierung",
|
||||
"yes": "Ja",
|
||||
"no": "Nein",
|
||||
"remaining": "Verbleibender Anspruch nach der Platzierung",
|
||||
"timeOffPeriod": "Freizeitzeitraum",
|
||||
"firstDecisive": "Erstes entscheidendes Ziel",
|
||||
"contributions": "Beiträge",
|
||||
"objectiveVector": "Vollständiger Zielvektor",
|
||||
"finalMetrics": "Kennzahlen des endgültigen Plans",
|
||||
"unplacedAtRisk": "Nicht platzierter gefährdeter Urlaub",
|
||||
"holidayWeekValue": "Wert der Feiertagswochen",
|
||||
"shortSequenceDeficit": "Defizit kurzer Arbeitsfolgen",
|
||||
"supportingPlacements": "Unterstützende Platzierungen",
|
||||
"preferenceSatisfaction": "Erfüllung der Präferenzen",
|
||||
"removedRestoredComparison": "Platzierung entfernt und wiederhergestellt",
|
||||
"fullComparison": "Vollständige Zielvektoren vorher und nachher",
|
||||
"comparisonHelp": "Vergleich des endgültigen Plans ohne diese Platzierung und nach ihrer Wiederherstellung.",
|
||||
"counterfactual": "Alternative Termine",
|
||||
"hypothetical": "Nur hypothetisch: Der optimierte Plan bleibt unverändert. Wählen Sie ein Datum im Horizont aus.",
|
||||
"counterfactualLoading": "Alle Daten im Horizont werden analysiert…",
|
||||
"counterfactualReady": "Alternative Termine sind bereit.",
|
||||
"counterfactualError": "Alternative Termine konnten nicht berechnet werden.",
|
||||
"eligible": "Geeignet",
|
||||
"ineligible": "Nicht geeignet",
|
||||
"historical": "Status der ursprünglichen Suche",
|
||||
"reason": "Grund",
|
||||
"explanationError": "Die Erklärung konnte nicht erstellt werden.",
|
||||
"conflictDetails": "Warum kein Plan die Verpflichtungen erfüllt",
|
||||
"conflictingRules": "Konfligierende Regeln",
|
||||
"bottleneck": "Engpass",
|
||||
"incompleteDetails": "Vor dem Abbruch abgeschlossene Schritte",
|
||||
"incumbentExplanation": "Dies erklärt den besten gültigen Zwischenstand; spätere Qualitätsstufen wurden nicht abgeschlossen.",
|
||||
"completedStages": "Abgeschlossene Schritte",
|
||||
"uncompletedStages": "Unterbrochene oder nicht gestartete Schritte",
|
||||
"none": "Keine",
|
||||
"currentPlacement": "Aktuell erklärte Platzierung",
|
||||
"outsideHorizon": "Kontextdatum außerhalb des Planungshorizonts",
|
||||
"traceTitle": "Erweitert: ursprüngliche Entscheidungsspur",
|
||||
"traceLoading": "Der Plan ist fertig; seine Entscheidungsspur wird noch geladen…",
|
||||
"traceUnavailable": "Für dieses Ergebnis ist keine Entscheidungsspur verfügbar.",
|
||||
"phases": "Spurphasen",
|
||||
"firstPhase": "Erste Phase",
|
||||
"previousPhase": "Vorherige Phase",
|
||||
"nextPhase": "Nächste Phase",
|
||||
"lastPhase": "Letzte Phase",
|
||||
"decisions": "Atomare Entscheidungen",
|
||||
"firstDecision": "Erste Entscheidung",
|
||||
"previousDecision": "Vorherige Entscheidung",
|
||||
"nextDecision": "Nächste Entscheidung",
|
||||
"lastDecision": "Letzte Entscheidung",
|
||||
"replay": "Entscheidungszustand",
|
||||
"before": "Vorher",
|
||||
"after": "Nachher",
|
||||
"finalPlan": "Endgültiger Plan",
|
||||
"dates": "Daten",
|
||||
"candidates": "Kandidaten",
|
||||
"previousCandidates": "Vorherige Kandidatenseite",
|
||||
"nextCandidates": "Nächste Kandidatenseite",
|
||||
"page": "Seite",
|
||||
"compareAlternatives": "Diesen Kandidaten im gesamten Horizont vergleichen",
|
||||
"tieBreak": "Entscheidungskriterium",
|
||||
"deltas": "Zustandsänderungen",
|
||||
"activations": "erworbene Aktivierungen",
|
||||
"noDecisions": "Diese Phase enthält keine atomare Entscheidung.",
|
||||
"traceStatuses": {
|
||||
"chosen": "Ausgewählt",
|
||||
"evaluated-rejected": "Bewertet und abgelehnt",
|
||||
"pruned": "Verworfen",
|
||||
"not-examined": "Nicht untersucht",
|
||||
"ineligible": "Nicht geeignet"
|
||||
},
|
||||
"tracePhaseStatuses": {
|
||||
"completed": "Abgeschlossen",
|
||||
"interrupted": "Unterbrochen",
|
||||
"not-run": "Nicht ausgeführt"
|
||||
},
|
||||
"traceChanges": {
|
||||
"added": "Durch diese Entscheidung hinzugefügt",
|
||||
"moved-from": "Von diesem Datum verschoben",
|
||||
"moved-to": "Auf dieses Datum verschoben",
|
||||
"removed": "Durch diese Entscheidung entfernt",
|
||||
"shared": "Durch diese Entscheidung geteilt",
|
||||
"unchanged": "Durch diese Entscheidung unverändert"
|
||||
}
|
||||
},
|
||||
"benchmark": {
|
||||
"title": "Benchmark der Urlaubsplanung",
|
||||
|
||||
+98
-1
@@ -104,7 +104,104 @@
|
||||
"conflict": "The obligations cannot be satisfied together.",
|
||||
"incomplete": "Calculation stopped before all quality stages completed.",
|
||||
"error": "The planner encountered an unexpected error.",
|
||||
"complete": "Plan calculated."
|
||||
"complete": "Plan calculated.",
|
||||
"whyPlacement": "Why this placement",
|
||||
"placementNavigation": "Placement explanation navigation",
|
||||
"placement": "Placement",
|
||||
"placements": "placements",
|
||||
"decision": "Decision",
|
||||
"of": "of",
|
||||
"first": "First placement",
|
||||
"previous": "Previous placement",
|
||||
"next": "Next placement",
|
||||
"last": "Last placement",
|
||||
"balance": "Entitlement",
|
||||
"rules": "Rules",
|
||||
"noRules": "No rule",
|
||||
"supporting": "Supporting placement",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"remaining": "Remaining entitlement after placement",
|
||||
"timeOffPeriod": "Time-off period",
|
||||
"firstDecisive": "First decisive objective",
|
||||
"contributions": "Contributions",
|
||||
"objectiveVector": "Full objective vector",
|
||||
"finalMetrics": "Final plan metrics",
|
||||
"unplacedAtRisk": "Unplaced at-risk leave",
|
||||
"holidayWeekValue": "Public-holiday week value",
|
||||
"shortSequenceDeficit": "Short work-sequence deficit",
|
||||
"supportingPlacements": "Supporting placements",
|
||||
"preferenceSatisfaction": "Preference satisfaction",
|
||||
"removedRestoredComparison": "Placement removed and restored",
|
||||
"fullComparison": "Full before-and-after objective vectors",
|
||||
"comparisonHelp": "This compares the final plan without this placement with the final plan after restoring it.",
|
||||
"counterfactual": "Date alternatives",
|
||||
"hypothetical": "Hypothetical only: the optimized plan is unchanged. Select any date in the horizon to inspect it.",
|
||||
"counterfactualLoading": "Analyzing every date in the horizon…",
|
||||
"counterfactualReady": "Date alternatives are ready.",
|
||||
"counterfactualError": "Date alternatives could not be calculated.",
|
||||
"eligible": "Eligible",
|
||||
"ineligible": "Ineligible",
|
||||
"historical": "Original search status",
|
||||
"reason": "Reason",
|
||||
"explanationError": "The explanation could not be produced.",
|
||||
"conflictDetails": "Why no plan can satisfy the obligations",
|
||||
"conflictingRules": "Conflicting rules",
|
||||
"bottleneck": "Bottleneck",
|
||||
"incompleteDetails": "What completed before calculation stopped",
|
||||
"incumbentExplanation": "This explains the best valid incumbent; later quality stages did not complete.",
|
||||
"completedStages": "Completed stages",
|
||||
"uncompletedStages": "Interrupted or unstarted stages",
|
||||
"none": "None",
|
||||
"currentPlacement": "Current explained placement",
|
||||
"outsideHorizon": "Context date outside the planning horizon",
|
||||
"traceTitle": "Advanced: original decision trace",
|
||||
"traceLoading": "The plan is ready; its decision trace is still loading…",
|
||||
"traceUnavailable": "No decision trace is available for this result.",
|
||||
"phases": "Trace phases",
|
||||
"firstPhase": "First phase",
|
||||
"previousPhase": "Previous phase",
|
||||
"nextPhase": "Next phase",
|
||||
"lastPhase": "Last phase",
|
||||
"decisions": "Atomic decisions",
|
||||
"firstDecision": "First decision",
|
||||
"previousDecision": "Previous decision",
|
||||
"nextDecision": "Next decision",
|
||||
"lastDecision": "Last decision",
|
||||
"replay": "Decision state",
|
||||
"before": "Before",
|
||||
"after": "After",
|
||||
"finalPlan": "Final plan",
|
||||
"dates": "Dates",
|
||||
"candidates": "Candidates",
|
||||
"previousCandidates": "Previous candidate page",
|
||||
"nextCandidates": "Next candidate page",
|
||||
"page": "Page",
|
||||
"compareAlternatives": "Compare this candidate across the horizon",
|
||||
"tieBreak": "Tie-break",
|
||||
"deltas": "State changes",
|
||||
"activations": "earned activations",
|
||||
"noDecisions": "This phase recorded no atomic decision.",
|
||||
"traceStatuses": {
|
||||
"chosen": "Chosen",
|
||||
"evaluated-rejected": "Evaluated and rejected",
|
||||
"pruned": "Pruned",
|
||||
"not-examined": "Not examined",
|
||||
"ineligible": "Ineligible"
|
||||
},
|
||||
"tracePhaseStatuses": {
|
||||
"completed": "Completed",
|
||||
"interrupted": "Interrupted",
|
||||
"not-run": "Not run"
|
||||
},
|
||||
"traceChanges": {
|
||||
"added": "Added by this decision",
|
||||
"moved-from": "Moved from this date",
|
||||
"moved-to": "Moved to this date",
|
||||
"removed": "Removed by this decision",
|
||||
"shared": "Shared by this decision",
|
||||
"unchanged": "Unchanged by this decision"
|
||||
}
|
||||
},
|
||||
"benchmark": {
|
||||
"title": "Leave planner benchmark",
|
||||
|
||||
+98
-1
@@ -104,7 +104,104 @@
|
||||
"conflict": "Las obligaciones no se pueden satisfacer juntas.",
|
||||
"incomplete": "El cálculo se detuvo antes de completar todas las etapas de calidad.",
|
||||
"error": "El planificador encontró un error inesperado.",
|
||||
"complete": "Plan calculado."
|
||||
"complete": "Plan calculado.",
|
||||
"whyPlacement": "Por qué esta asignación",
|
||||
"placementNavigation": "Navegación por las explicaciones de las asignaciones",
|
||||
"placement": "Asignación",
|
||||
"placements": "asignaciones",
|
||||
"decision": "Decisión",
|
||||
"of": "de",
|
||||
"first": "Primera asignación",
|
||||
"previous": "Asignación anterior",
|
||||
"next": "Asignación siguiente",
|
||||
"last": "Última asignación",
|
||||
"balance": "Derecho",
|
||||
"rules": "Reglas",
|
||||
"noRules": "Sin regla",
|
||||
"supporting": "Asignación de apoyo",
|
||||
"yes": "Sí",
|
||||
"no": "No",
|
||||
"remaining": "Derecho restante tras la asignación",
|
||||
"timeOffPeriod": "Período de descanso",
|
||||
"firstDecisive": "Primer objetivo decisivo",
|
||||
"contributions": "Contribuciones",
|
||||
"objectiveVector": "Vector completo de objetivos",
|
||||
"finalMetrics": "Métricas del plan final",
|
||||
"unplacedAtRisk": "Vacaciones en riesgo sin asignar",
|
||||
"holidayWeekValue": "Valor de semanas con festivos",
|
||||
"shortSequenceDeficit": "Déficit de secuencias cortas de trabajo",
|
||||
"supportingPlacements": "Asignaciones de apoyo",
|
||||
"preferenceSatisfaction": "Satisfacción de preferencias",
|
||||
"removedRestoredComparison": "Asignación eliminada y restaurada",
|
||||
"fullComparison": "Vectores de objetivos completos antes y después",
|
||||
"comparisonHelp": "Compara el plan final sin esta asignación y después de restaurarla.",
|
||||
"counterfactual": "Fechas alternativas",
|
||||
"hypothetical": "Solo hipotético: el plan optimizado no cambia. Selecciona una fecha del horizonte para inspeccionarla.",
|
||||
"counterfactualLoading": "Analizando cada fecha del horizonte…",
|
||||
"counterfactualReady": "Las fechas alternativas están listas.",
|
||||
"counterfactualError": "No se pudieron calcular las fechas alternativas.",
|
||||
"eligible": "Válida",
|
||||
"ineligible": "No válida",
|
||||
"historical": "Estado de la búsqueda original",
|
||||
"reason": "Motivo",
|
||||
"explanationError": "No se pudo generar la explicación.",
|
||||
"conflictDetails": "Por qué ningún plan satisface las obligaciones",
|
||||
"conflictingRules": "Reglas en conflicto",
|
||||
"bottleneck": "Cuello de botella",
|
||||
"incompleteDetails": "Lo completado antes de detener el cálculo",
|
||||
"incumbentExplanation": "Esto explica el mejor plan válido encontrado; las etapas de calidad posteriores no se completaron.",
|
||||
"completedStages": "Etapas completadas",
|
||||
"uncompletedStages": "Etapas interrumpidas o no iniciadas",
|
||||
"none": "Ninguno",
|
||||
"currentPlacement": "Asignación explicada actualmente",
|
||||
"outsideHorizon": "Fecha de contexto fuera del horizonte de planificación",
|
||||
"traceTitle": "Avanzado: traza de decisiones original",
|
||||
"traceLoading": "El plan está listo; su traza de decisiones aún se está cargando…",
|
||||
"traceUnavailable": "No hay una traza de decisiones disponible para este resultado.",
|
||||
"phases": "Fases de la traza",
|
||||
"firstPhase": "Primera fase",
|
||||
"previousPhase": "Fase anterior",
|
||||
"nextPhase": "Fase siguiente",
|
||||
"lastPhase": "Última fase",
|
||||
"decisions": "Decisiones atómicas",
|
||||
"firstDecision": "Primera decisión",
|
||||
"previousDecision": "Decisión anterior",
|
||||
"nextDecision": "Decisión siguiente",
|
||||
"lastDecision": "Última decisión",
|
||||
"replay": "Estado de la decisión",
|
||||
"before": "Antes",
|
||||
"after": "Después",
|
||||
"finalPlan": "Plan final",
|
||||
"dates": "Fechas",
|
||||
"candidates": "Candidatos",
|
||||
"previousCandidates": "Página de candidatos anterior",
|
||||
"nextCandidates": "Página de candidatos siguiente",
|
||||
"page": "Página",
|
||||
"compareAlternatives": "Comparar este candidato en todo el horizonte",
|
||||
"tieBreak": "Desempate",
|
||||
"deltas": "Cambios de estado",
|
||||
"activations": "activaciones obtenidas",
|
||||
"noDecisions": "Esta fase no registró ninguna decisión atómica.",
|
||||
"traceStatuses": {
|
||||
"chosen": "Elegido",
|
||||
"evaluated-rejected": "Evaluado y rechazado",
|
||||
"pruned": "Podado",
|
||||
"not-examined": "No examinado",
|
||||
"ineligible": "No válido"
|
||||
},
|
||||
"tracePhaseStatuses": {
|
||||
"completed": "Completada",
|
||||
"interrupted": "Interrumpida",
|
||||
"not-run": "No ejecutada"
|
||||
},
|
||||
"traceChanges": {
|
||||
"added": "Añadido por esta decisión",
|
||||
"moved-from": "Movido desde esta fecha",
|
||||
"moved-to": "Movido a esta fecha",
|
||||
"removed": "Eliminado por esta decisión",
|
||||
"shared": "Compartido por esta decisión",
|
||||
"unchanged": "Sin cambios por esta decisión"
|
||||
}
|
||||
},
|
||||
"benchmark": {
|
||||
"title": "Prueba del planificador de vacaciones",
|
||||
|
||||
+98
-1
@@ -104,7 +104,104 @@
|
||||
"conflict": "Les obligations ne peuvent pas être satisfaites ensemble.",
|
||||
"incomplete": "Le calcul s’est arrêté avant la fin des critères de qualité.",
|
||||
"error": "Le planificateur a rencontré une erreur inattendue.",
|
||||
"complete": "Plan calculé."
|
||||
"complete": "Plan calculé.",
|
||||
"whyPlacement": "Pourquoi ce placement",
|
||||
"placementNavigation": "Navigation entre les explications des placements",
|
||||
"placement": "Placement",
|
||||
"placements": "placements",
|
||||
"decision": "Décision",
|
||||
"of": "sur",
|
||||
"first": "Premier placement",
|
||||
"previous": "Placement précédent",
|
||||
"next": "Placement suivant",
|
||||
"last": "Dernier placement",
|
||||
"balance": "Droit",
|
||||
"rules": "Règles",
|
||||
"noRules": "Aucune règle",
|
||||
"supporting": "Placement de soutien",
|
||||
"yes": "Oui",
|
||||
"no": "Non",
|
||||
"remaining": "Droit restant après placement",
|
||||
"timeOffPeriod": "Période de repos",
|
||||
"firstDecisive": "Premier objectif décisif",
|
||||
"contributions": "Contributions",
|
||||
"objectiveVector": "Vecteur d’objectifs complet",
|
||||
"finalMetrics": "Métriques du plan final",
|
||||
"unplacedAtRisk": "Congés à risque non placés",
|
||||
"holidayWeekValue": "Valeur des semaines fériées",
|
||||
"shortSequenceDeficit": "Déficit des courtes séquences travaillées",
|
||||
"supportingPlacements": "Placements de soutien",
|
||||
"preferenceSatisfaction": "Satisfaction des préférences",
|
||||
"removedRestoredComparison": "Placement retiré puis rétabli",
|
||||
"fullComparison": "Vecteurs d’objectifs complets avant et après",
|
||||
"comparisonHelp": "Comparaison du plan final sans ce placement puis après son rétablissement.",
|
||||
"counterfactual": "Dates alternatives",
|
||||
"hypothetical": "Hypothèse uniquement : le plan optimisé ne change pas. Sélectionnez une date de l’horizon pour l’inspecter.",
|
||||
"counterfactualLoading": "Analyse de chaque date de l’horizon…",
|
||||
"counterfactualReady": "Les dates alternatives sont prêtes.",
|
||||
"counterfactualError": "Les dates alternatives n’ont pas pu être calculées.",
|
||||
"eligible": "Éligible",
|
||||
"ineligible": "Inéligible",
|
||||
"historical": "Statut de la recherche originale",
|
||||
"reason": "Raison",
|
||||
"explanationError": "L’explication n’a pas pu être produite.",
|
||||
"conflictDetails": "Pourquoi aucun plan ne satisfait les obligations",
|
||||
"conflictingRules": "Règles en conflit",
|
||||
"bottleneck": "Goulot d’étranglement",
|
||||
"incompleteDetails": "Étapes terminées avant l’arrêt du calcul",
|
||||
"incumbentExplanation": "Cette explication concerne le meilleur plan valide trouvé ; les étapes de qualité suivantes ne sont pas terminées.",
|
||||
"completedStages": "Étapes terminées",
|
||||
"uncompletedStages": "Étapes interrompues ou non démarrées",
|
||||
"none": "Aucun",
|
||||
"currentPlacement": "Placement expliqué actuellement",
|
||||
"outsideHorizon": "Date de contexte hors de l’horizon de planification",
|
||||
"traceTitle": "Avancé : trace des décisions originales",
|
||||
"traceLoading": "Le plan est prêt ; sa trace de décision est encore en cours de chargement…",
|
||||
"traceUnavailable": "Aucune trace de décision n’est disponible pour ce résultat.",
|
||||
"phases": "Phases de la trace",
|
||||
"firstPhase": "Première phase",
|
||||
"previousPhase": "Phase précédente",
|
||||
"nextPhase": "Phase suivante",
|
||||
"lastPhase": "Dernière phase",
|
||||
"decisions": "Décisions atomiques",
|
||||
"firstDecision": "Première décision",
|
||||
"previousDecision": "Décision précédente",
|
||||
"nextDecision": "Décision suivante",
|
||||
"lastDecision": "Dernière décision",
|
||||
"replay": "État de la décision",
|
||||
"before": "Avant",
|
||||
"after": "Après",
|
||||
"finalPlan": "Plan final",
|
||||
"dates": "Dates",
|
||||
"candidates": "Candidats",
|
||||
"previousCandidates": "Page de candidats précédente",
|
||||
"nextCandidates": "Page de candidats suivante",
|
||||
"page": "Page",
|
||||
"compareAlternatives": "Comparer ce candidat sur tout l’horizon",
|
||||
"tieBreak": "Critère de départage",
|
||||
"deltas": "Changements d’état",
|
||||
"activations": "activations acquises",
|
||||
"noDecisions": "Cette phase n’a enregistré aucune décision atomique.",
|
||||
"traceStatuses": {
|
||||
"chosen": "Choisi",
|
||||
"evaluated-rejected": "Évalué et rejeté",
|
||||
"pruned": "Élagué",
|
||||
"not-examined": "Non examiné",
|
||||
"ineligible": "Inéligible"
|
||||
},
|
||||
"tracePhaseStatuses": {
|
||||
"completed": "Terminée",
|
||||
"interrupted": "Interrompue",
|
||||
"not-run": "Non exécutée"
|
||||
},
|
||||
"traceChanges": {
|
||||
"added": "Ajouté par cette décision",
|
||||
"moved-from": "Déplacé depuis cette date",
|
||||
"moved-to": "Déplacé vers cette date",
|
||||
"removed": "Retiré par cette décision",
|
||||
"shared": "Partagé par cette décision",
|
||||
"unchanged": "Inchangé par cette décision"
|
||||
}
|
||||
},
|
||||
"benchmark": {
|
||||
"title": "Benchmark du planificateur de congés",
|
||||
|
||||
Reference in new issue
Block a user