Files
MobilityOps/frontend/src/i18n/locales/nl-BE/knowledge.json
T
NuklearRabbitandClaude Sonnet 5 6deb95524d fix: safe status-recommendation flow, MO-016 order independence, brand constant, message codes
- Add a single shared, pure vehicle-status evaluator (app/services/vehicle_status.py)
  used identically by the data-quality scanner, a new non-mutating status-recommendation
  preview endpoint, and a transactional apply endpoint with optimistic-concurrency token
  revalidation -- eliminates the old opaque "calculate and apply" action and the unsafe
  "maintenance + active booking -> auto rented" shortcut. Frontend
  DataQualityIssueDetail.tsx now shows a review/decide/confirm panel with localized
  why/evidence/consequence text in nl-BE/en-GB/fr-BE, with an exact "Change status to
  <status>" confirm action per the brief.
- Fix MO-016 issue-order dependency: resolving the booking-overlap issue before vs.
  after the status-conflict issue now converges on the same final vehicle status,
  proven by test_mo_016_status_conflict_recommendation_is_order_independent.
- Make "Fleet Ops" a non-localizable brand constant (frontend/src/product.ts,
  backend PRODUCT_NAME) via {{productName}} interpolation everywhere the brand name
  appeared in locale prose; add a permanent test guarding against a translation file
  ever defining the brand name or an "appName" key again.
- Convert dynamic backend prose to stable message codes + params: return status
  reasons, audit field/actor-type labels, automation last_error, and search
  section/vehicle/booking/issue results all now carry codes the frontend localizes,
  with raw technical text demoted to a "Technical details" disclosure.
- docs/fleet-ops-correction/: gap audit, i18n inventory, and the vehicle-status
  decision table documenting the evaluator's rules and safe-status principles.

148 backend tests + Ruff + mypy green; Alembic migration verified upgrade/downgrade;
frontend tsc/build and the i18n-coverage Playwright suite green.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-03 21:37:34 +02:00

42 lines
2.0 KiB
JSON

{
"eyebrow": "Bewaken / Onderbouwde kennis",
"title": "Procedurekennis",
"description": "Stel operationele vragen. Antwoorden verschijnen enkel wanneer {{provider}} voldoende onderbouwde evidentie teruggeeft.",
"providerDemo": "de demokennisbank",
"providerRagcore": "RAGcore",
"statusAvailable": "Beschikbaar",
"statusUnavailable": "Niet beschikbaar",
"proceduresIndexed": "{{count}} procedures geïndexeerd",
"providerNote": "Deze demo beantwoordt vanuit een kleine, vaste set geïndexeerde procedures — geen live RAGcore-koppeling. Een live RAGcore-backend zal later dezelfde interface overnemen, zonder dat deze pagina verandert.",
"askHeading": "Stel een procedurevraag",
"askSubheading": "Ophalen → evidentiecontrole → onderbouwd antwoord",
"questionLabel": "Vraag",
"questionPlaceholder": "bv. Wat moet ik doen wanneer een voertuig beschadigd terugkomt?",
"ask": "Vraag stellen",
"asking": "Bezig met vragen…",
"askFailed": "Kon de kennisdienst niet bereiken.",
"suggestedLabel": "Probeer:",
"suggestedQuestions": [
"Wat moet ik doen wanneer een voertuig terugkomt met schade?",
"Hoe registreer ik een voertuigretour?",
"Wanneer mag een voertuig opnieuw beschikbaar gezet worden?",
"Wie beoordeelt een ongewone kilometerstand?",
"Welke controles zijn verplicht vóór vertrek?"
],
"emptyTitle": "Evidentie voor antwoorden",
"emptyDescription": "Vraag naar retours, schade, inspecties of een andere geïndexeerde procedure. {{productName}} verzint geen antwoord wanneer evidentie ontbreekt.",
"retrievalFlow": {
"question": "Vraag",
"sources": "Bronnen",
"answer": "Antwoord"
},
"questionLabelExchange": "Vraag",
"evidenceStates": {
"grounded": "Onderbouwd met geciteerde procedures",
"insufficient": "Onvoldoende evidentie",
"unavailable": "Kennisdienst niet beschikbaar"
},
"unavailableBody": "De kennisdienst is momenteel niet bereikbaar. Operationele functies zijn hier niet door beïnvloed — probeer later opnieuw.",
"sourceVersion": "v{{version}}"
}