Merged PR 2449: language helper

Related work items: #23754
This commit is contained in:
Robert Bond
2026-07-01 11:29:15 +00:00
parent 49aa258fd9
commit e864049bec
63 changed files with 4008 additions and 6094 deletions
+49
View File
@@ -51,6 +51,55 @@ Business responsibility clarification:
This architectural reference builds on those business concepts but does not replace the more detailed terminology guide in `context/business-domain-overview.md`.
## CRM Display Infrastructure Status (2026-07-01)
### Stream status
**CRM Display Infrastructure: COMPLETE**
### Shared helper introduced
- `lib/i18n/crmDisplay/resolveCrmDisplayValue.js`
### Helper contract
The shared CRM display resolver should be understood as handling the standard CRM formatted/display-value translation concern only.
Current contract:
- missing CRM display value -> return `fallbackValue`
- English -> return CRM display value
- Welsh -> return translated value when available
- Welsh without translation -> return CRM display value
### Architectural responsibility
This helper centralises the standard CRM formatted/display-value translation pattern used across portal presentation surfaces.
It should be treated as the shared compatibility seam for:
- CRM formatted values
- CRM display values
- standard EN/CY display translation lookup
- existing consumer-specific absent-value fallback handling
### Boundary exclusions
The helper boundary intentionally excludes the following concerns:
- keyed lookup translation
- project-type list translation
- hyperlink / website rendering
- mixed presentation rows
- lifecycle interpretation
- status interpretation
- post-decision interpretation
- other presentation-specific derived values
These are separate architectural concerns and should not be folded into `resolveCrmDisplayValue(...)`.
If future work is needed in those areas, it should introduce a separate abstraction rather than broadening the helper.
## Portal API Platform Assessment Status (2026-06-20)
### Stream status
+21
View File
@@ -148,6 +148,27 @@ The adoption target should be explicit, such as:
Do not attempt mass adoption by default.
### CRM Display Infrastructure Rule
When rendering a standard CRM formatted/display value:
- `resolveCrmDisplayValue(...)` should be used.
Developers should not introduce new inline JSONPath lookups for the standard CRM formatted/display-value translation pattern.
If the translation concern does not match the helper boundary, it should be treated as a separate abstraction rather than extending the helper.
This includes concerns such as:
- keyed lookup translation
- list translation
- hyperlink / website rendering
- mixed presentation rows
- lifecycle interpretation
- status interpretation
- post-decision interpretation
- other derived presentation values
---
## 4. Branching Governance
+35 -4
View File
@@ -190,10 +190,13 @@ Create a clearer single source of truth for CRM-driven bilingual display behavio
#### Current Maturity
- characterized
- repeated dominant pattern identified
- several partial abstractions already present
- suitable for incremental implementation
- completed
- shared resolver introduced
- helper test coverage added
- helper contract verified and corrected
- compatible consumers adopted across admin, search, My Portal, and summary types
- stale JSONPath import cleanup completed where safe
- behaviour-preserving migration completed
#### Implementation Strategy
@@ -202,6 +205,34 @@ Create a clearer single source of truth for CRM-driven bilingual display behavio
- adopt first in bounded, read-only display families
- preserve current fallback behaviour per consumer unless an explicit standardization decision is approved
#### Status
Completed.
Delivered in this workstream:
- shared resolver introduced
- helper test coverage
- helper contract verified and corrected
- adoption across:
- admin
- search
- My Portal
- summary types
- stale JSONPath import cleanup
- behaviour-preserving migration
Remaining JSONPath usage in adopted areas is intentional where it falls outside the helper boundary.
That includes concerns such as:
- keyed lookup translation
- project-type list translation
- hyperlink / website rendering
- mixed presentation rows
- lifecycle / status / post-decision interpretation
- other presentation-specific derived values
#### Expected Maintenance Benefit
- reduced duplication of display-resolution logic