Issue #3613224: Config translations of a versioned workflow definition are not applied to running instances
Persists each workflow version's config translations at bake time and overlays them for the viewer language at render, so a running instance shows translated interaction labels, messages and flow labels instead of the base strings.
Problem: a running instance resolves its definition from an immutable version snapshot, which bakes the base (untranslated) config; the runtime serves it as-baked and never overlays the viewer-language config translation, so translated workflow strings do not reach a versioned/running instance (labels and messages alike).
Changes:
WorkflowVersionManagercaptures each language config override for the workflow at bake time (guarded byinstanceof ConfigurableLanguageManagerInterface, so a single-language site is a no-op), keeping the translatablenodesandflows.WorkflowVersionstores them in a newtranslation_datafield and overlays the current language over the base definition ingetNodes()/definitionFlows(). Only translatable leaves change; node ids, types and flow conditions are untouched, so engine logic is unaffected.- The executable hash stays language-neutral: a translation-only change reuses the same snapshot rather than cutting a new executable version. Translations are pinned at bake, so a later translation edit reaches future versions, not already-running instances, the same guarantee the definition carries.
Covered by a kernel test (VersionTranslationTest): the overlay applies node and flow translations for the viewer language and falls back when absent, and a translation-only change reuses the same version. Full orchestra core kernel suite stays green (226 tests).
Ref #3613224.