Problem
locale keeps one string table for the whole site, so a source string has exactly one translation whatever module shipped it. Twenty-two source strings are translated differently in two or more of this project's catalogs, so which French a reader sees is decided by the order the catalogs happened to be imported, and installing a submodule can change a word elsewhere in the interface.
The per-project check cannot see this, and correctly so: it reads each catalog against the files of its own project, one project at a time, and every one of these entries is filed where its source string lives. The disagreement only exists between them.
The disagreements
Start: Début in the base catalog, Démarrer in orchestra_content_moderation and orchestra_ui, Démarrage in orchestra_modelerCompleted: Terminées in the base catalog, Terminé in orchestra_audit_trail and orchestra_payment_example, Terminés in orchestra_views. The base catalog also carries a secondCompletedunder the context "Work item status", translated Traitée, which is correct and is not part of this: it is what the rest of these want.Canceled: Annulées in the base catalog, Annulé in orchestra_audit_trail and orchestra_payment_exampleTenant: Tenant in the base catalog and orchestra_ui, Locataire in orchestra_delegationTenant scope: Périmètre du tenant in the base catalog, Portée par tenant in orchestra_uiOutcome: Issue in the base catalog, orchestra_eca and orchestra_vbo_inbox, Résultat in orchestra_inbox_viewsOperations: Opérations in orchestra_delegation and orchestra_inbox, Actions in orchestra_inbox_viewsReject: Rejeter in orchestra_examples, Refuser in orchestra_interaction_webform_examplesOpen: Ouverte in the base catalog, orchestra_inbox and orchestra_interaction, Ouvrir in orchestra_uiRemove: Retirer in the base catalog, Supprimer in orchestra_cmFailed: En échec in the base catalog, Échoué in orchestra_audit_trailEnded: Terminée in orchestra_delegation, Terminé in orchestra_viewsStarts: Début in orchestra_delegation, Démarrages in orchestra_modelerCurrent step: Étape en cours in orchestra_ui, Étape courante in orchestra_viewsMy requests: Mes demandes in orchestra_ui, Mes démarches in orchestra_viewsComplete task: Traiter la tâche in orchestra_inbox, Terminer la tâche in orchestra_vbo_inboxCreated: Créé in four catalogs, Créé le in orchestra_inbox_views- None -: Aucun in the base catalog and orchestra_domain, Aucune in orchestra_interactionWorkflow ID: Identifiant du workflow in orchestra_content_eca, ID du workflow in orchestra_ecaName of the instance ID token: Nom du jeton de l'ID d'instance in orchestra_eca, Nom du token d'identifiant de l'instance in orchestra_content_ecaInstance (shared with the whole process): partagée avec l'ensemble du processus in the base catalog, partagée avec tout le processus in orchestra_interaction_webformYou have no requests yet.: Vous n'avez pas encore de demandes. in orchestra_ui, Vous n'avez encore aucune demande. in orchestra_views
Proposed resolution
Some of these are wording that should simply agree, and the rest are a vocabulary decision. Open is the clearest case: the base module means the state a task is in, Ouverte, and orchestra_ui means the link that opens it, Ouvrir, which is the same English word doing two jobs. That one wants a translation context rather than a single French, and there are others like it.
So the work is to settle one French per term, taking the base module's as the reference where it has one, and to give a context to the strings that genuinely mean two different things. The base module already does that for Completed and it is the pattern to follow: the gender and number disagreements on Completed, Canceled and Ended all come from one source word describing an instance, a task and a column heading, and each of those is a different French.
Remaining tasks
- Agree one French per term, and a context for the English words doing two jobs.
- Reconcile the twenty-two, moving the agreed wording into every catalog that carries the string.
- Add a check for it: comparing the catalogs against each other is a different question from the two the per-project check asks, and nothing asks it today.
AI-Generated: Yes (Claude Code was used to help draft this issue summary and to take the measurements it reports. I reviewed the measurements and the wording before posting, and no code accompanies this issue.)
Issue fork orchestra-3620840
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
Comment #3
mably commentedComment #5
mably commented