Problem/Motivation

A status keeps its English label on a French site, and there is no way to translate it by clicking. The same holds for a workflow and a tenant.

The translation itself is not broken. Everything underneath works:

  • The schema types the label as label, so it is a translatable string.
  • config_translation builds a mapper for each of these entity types.
  • The overview route exists for each: for a status it is /admin/config/workflow/orchestra/statuses/{orchestra_status}/translate.
  • Saving a French override makes the entity answer in French: with label set on language.fr.orchestra.status.under_review, $status->label() returns the French under the French config override language.

What is missing is the tab. Asking the local task manager what tabs exist on a status edit form returns an empty list, while a core config entity such as a view returns its own tabs plus config_translation.local_tasks:entity.view.config_translation_overview.

Why

Core derives one local task per mapper, with base_route set to the entity's edit form (ConfigTranslationLocalTasks::getDerivativeDefinitions()). That derivative does exist here: the definition list contains config_translation.local_tasks:entity.orchestra_status.config_translation_overview.

But a tab bar is only rendered when the base route itself also has a local task, the one that becomes the default tab. Core entity types declare one, which is why entity.view.edit_form appears in its own tab list. This project declares none, so the derived Translate tab has nowhere to appear and the route is reachable only by typing the URL.

The existing orchestra.links.task.yml only declares the per-workflow override tabs, which hang off the workflow canonical route that a modeler provides, not off any edit form.

Scope

Three config entity types, the ones whose labels are read by people who did not author them:

  • orchestra_status, shown on the task rows and status tags a requester sees;
  • orchestra_workflow, shown in the task lists, the instances list and the workflow filter;
  • orchestra_tenant, shown wherever a tenant is named or chosen.

orchestra_remote is deliberately left out. It is the fourth config entity in the project and it has the same missing tab, but its label is an operator's name for a server they configured: it is read in the remote form itself, in two status messages and in the remote list, all under /admin/config/workflow/orchestra/remote. Translating it would mean translating a name for the same administrator who typed it, so the tab would carry no value there.

Proposed resolution

Declare the default tab for those three config entity edit forms in orchestra.links.task.yml, so the tab bar exists and the Translate tab joins it. Nothing else is needed: the edit route, the overview route and the mapper are already there.

Remaining tasks

The labels themselves still have to be translated per site, since these entities are created by the site rather than shipped, so there is no catalogue entry to carry them. This issue is about making that possible by clicking.

AI-Generated: Yes (Claude Code was used to diagnose this against a running site and to draft this issue summary and the change. The diagnosis was confirmed by reading the derived local task definitions, the mapper routes, and by saving a French override and reading the label back.)

Issue fork orchestra-3624957

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

mably created an issue. See original summary.

mably’s picture

Title: The Translate tab never appears on a status, workflow or tenant, because their edit forms declare no local task » The Translate tab never appears on any Orchestra config entity, because their edit forms declare no local task
Issue summary: View changes
mably’s picture

Title: The Translate tab never appears on any Orchestra config entity, because their edit forms declare no local task » The Translate tab never appears on a status, workflow or tenant, because their edit forms declare no local task
Issue summary: View changes

mably’s picture

Status: Active » Needs review

  • mably committed b3d49879 on 1.x
    fix: #3624957 The Translate tab never appears on a status, workflow or...
mably’s picture

Status: Needs review » Fixed

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.