Escape custom policy messages, complete the French translation, and refresh pre-release docs and code nits
Pre-release fixes from the release audit, plus decoupling the example from Easy Email.
- Escape the operator-authored order constraint-policy message through
Xss::filter()before it renders to the booker. - Complete the French translation: 33 permission, menu, route and Views strings, plus three po header fields.
- Refresh docs/architecture.md (module map and services table).
- Minor code nits: Symfony dispatcher type, typed entity-reference accessors, American spelling, drop "please" from two strings.
- Default the example to the plain
orchestra_mailchannel instead of forcingorchestra_easy_email. The rich Easy Email templates stay opt-in config in yoyaku_orchestra_order (enable orchestra_easy_email to light them up). This lets the two end-to-end webform tests run without Easy Email, so they are un-skipped: they enter the form through the interaction dispatcher and fill the required booker fields, proving the workflow resumes on submit and settles through the payment bridge. Resolves the yoyaku side of #3611593; the incidental Easy Email PHP 8.4 deprecation is reported upstream at #3611615.
Edited by Frank Mably