Problem/Motivation
An audit of translations/yoyaku.fr.po against 1.x found twelve strings with no French translation, so a French site showed them in English. Found while auditing the translation for #3616323: Offer the part of the house on the booking page, not only on the plan, where they were left alone deliberately: they belong to five other modules and none of them is that issue's to fix.
None is a JS string, so none is the potx trailing-comma blind spot. They were simply never translated.
Run the other way, the same audit found seven entries whose msgid appears in no source file at all. Four are the earlier wording of strings in the list below, reworded since; three name things the code no longer says.
The gaps, by the module that owns them
- yoyaku_ui,
Form/BookingEntityForm.php: the resource type empty option "- No type -", the "Continue" button, and the resource type description ("What kind of thing this is..."). - yoyaku_presentation: all three of its display strings in
Hook/PresentationHooks.php(the two settings descriptions and the per-resource field description), plus the "Yoyaku presentation settings" schema label. - yoyaku core,
Form/FieldRuleWidget.php: "Inherit (nothing set anywhere)" and "Inherit: @value", the two labels a ruled field shows for what it inherits. - yoyaku core,
config/schema/yoyaku.schema.yml: "The values this level enforces on a field that holds several". - yoyaku_placement,
config/schema/yoyaku_placement.schema.yml: "How long a message stays on the seat map, in seconds". - yoyaku_payment,
Hook/BookingPaymentHooks.php: the price field description.
Proposed resolution
Translate the twelve and remove the seven. Where an entry is only a reword, carry its French onto the new msgid and rewrite just the clause that changed, so vocabulary the operator already reads is not thrown away. Keep to the terminology the catalog already uses: plan de salle for the seat map, interface for a display surface, presque complet for almost full, Hérité de @level : @value for a named inherit choice.
Run both directions in one pass and cross-check them, because a msgid reported missing and orphaned at once is a quoting artefact rather than a dead string. A reword is the one case that cross-check cannot catch, since it yields a missing entry and a differently worded orphan, so pair those by hand.
Remaining tasks
None. msgfmt --check passes, cspell is clean, and the audit re-run reports 0 missing and 0 orphaned.
The catalog is not imported automatically, so a site already running yoyaku needs an interface translation import before the new strings appear.
Release notes snippet
Twelve strings that a French site showed in English are translated, and seven entries the code no longer says are removed from the French catalog. Sites running French need an interface translation import to pick them up.
AI-Generated: Yes (Claude Code drafted this summary, wrote the French translations and ran the potx audit in both directions. I reviewed them.)
Issue fork yoyaku-3616427
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 #4
mably commentedComment #6
mably commented