Bug
The opportunity search cards (dashboard Möglichkeiten list view) display raw translation keys instead of human-readable labels:
dashboard.opportunities.matchStatus.opp-vol-no-matches
dashboard.opportunities.status.opp-inactive
Screenshot: confirmed in production.
Root cause
Two separate mismatches in OpportunityCard.tsx / OpportunityCard.helpers.tsx:
1. matchStatus key prefix mismatch
The API returns statusMatch as OpportunityMatchStatusType values (e.g. opp-vol-no-matches), but:
- Translation keys in both
de/translations.json and en/translations.json are keyed without the opp- prefix: vol-no-matches
matchStatusColorMap and matchStatusIconMap in OpportunityCard.helpers.tsx also use the vol- prefix
So t(dashboard.opportunities.matchStatus.${statusMatch}) always misses — the key opp-vol-no-matches doesn't exist in the translations.
2. Missing opp-inactive status translation
OpportunityStatusType.INACTIVE = "opp-inactive" is a valid status returned by the API but is absent from both de and en dashboard.opportunities.status translation objects.
Fix
- Rename
matchStatus translation keys from vol-* → opp-vol-* in both locale files
- Update
matchStatusColorMap and matchStatusIconMap keys to opp-vol-*
- Add
opp-inactive entry to both locale files
Bug
The opportunity search cards (dashboard Möglichkeiten list view) display raw translation keys instead of human-readable labels:
dashboard.opportunities.matchStatus.opp-vol-no-matchesdashboard.opportunities.status.opp-inactiveScreenshot: confirmed in production.
Root cause
Two separate mismatches in
OpportunityCard.tsx/OpportunityCard.helpers.tsx:1. matchStatus key prefix mismatch
The API returns
statusMatchasOpportunityMatchStatusTypevalues (e.g.opp-vol-no-matches), but:de/translations.jsonanden/translations.jsonare keyed without theopp-prefix:vol-no-matchesmatchStatusColorMapandmatchStatusIconMapinOpportunityCard.helpers.tsxalso use thevol-prefixSo
t(dashboard.opportunities.matchStatus.${statusMatch})always misses — the keyopp-vol-no-matchesdoesn't exist in the translations.2. Missing
opp-inactivestatus translationOpportunityStatusType.INACTIVE = "opp-inactive"is a valid status returned by the API but is absent from bothdeandendashboard.opportunities.statustranslation objects.Fix
matchStatustranslation keys fromvol-*→opp-vol-*in both locale filesmatchStatusColorMapandmatchStatusIconMapkeys toopp-vol-*opp-inactiveentry to both locale files