Read the French catalog end to end: one word per term, and one answer on its typography

Read all 2,003 entries against their msgids. 189 msgstrs changed and no msgid did, so the completeness check stays green throughout and nothing in the code moves.

What the reading found

Six terminology splits, where one English word had become two French ones:

  • 11 strings still called a slot a séance, the event sense #3619722 retired from the English. One of them is the unique-constraint message an operator reads.
  • 24 called a place grade a catégorie while the entity itself is a grade de place, including the three validation messages on tariff presets.
  • 16 called a tenant a locataire, against 50 that say tenant. Orchestra says tenant too.
  • workflow was written three ways: flux de travail (25), a bare flux (8) and workflow (13). Orchestra, the engine that owns the word, keeps workflow in French throughout its own catalog and has no flux de travail at all.
  • section and area had both become zone. That is what a collision costs: "An area with no setting follows its section" had become une zone sans réglage suit ce que dit la zone elle-même, and "a whole section, or one subsection of one" had become une zone entière, ou une seule de ses sous-zones while the very next sentence used zone for area.
  • Settlement was règlement and régler, which is what a French reader pays a bill with, in a catalog that is careful never to describe a booking in money words. It is a clôture now, which is what four of the sibling strings already said.

Plus booker rendered as visiteur in six strings, operator as exploitant in two, a seat row as rangée in four, and parked as positionné where Orchestra says en attente.

Sentences that were simply wrong

  • Four said cliquez une place. The verb takes sur.
  • quelles qu'il choisisse is not a sentence. It is quelles que soient celles qu'il choisit.
  • Contingentées pour ce contingent for "Pinned to this allotment", and il n'y a donc rien à qui réserver des places, where à qui is for people.
  • The slot number carried U+00BA, the Spanish and Portuguese ordinal, rather than °.
  • "Color used to render the grade on the place map" said le groupe de places.
  • "Claimed from the guarantee" said prélevé sur la carte enregistrée, while the sibling string one row above said sur la garantie.
  • "Attempts allowed per window; below 1 switches the limit off" had lost its second clause entirely.
  • Nous avons rendu votre autre place à la place, twice; doit finir renseigné; déplacée pour regrouper un groupe; ce que ce tarif tarife; une sélection qui chevauche une limite de mois; Qui a cliqué ... contrairement à qui.

The two things a script could count

Both decided once for the catalog rather than per string, and both written down in docs/translation.md so the next reading starts from them.

The apostrophe is U+2019, 756 converted.

The space before a colon, semicolon, exclamation or question mark is U+00A0, as is the space inside a pair of French quotation marks: 437 inserted. U+00A0 rather than the narrow U+202F because 240 of the 313 sites are colons, which is the mark French typography gives a word space rather than a fine one, and because one character for all four means one grep finds every exception rather than four. Dompdf's bundled DejaVu Sans carries both, so the ticket PDF did not decide it.

Checked

msgfmt --check clean; scripts/check-translations.php reports every shipped string translated; the msgid set is byte-identical to 1.x; every placeholder and every HTML tag matches its msgid, per plural form; no run-together blocks and the same 6,290 lines.

Noticed while reading, not touched here

  • msgid "New labels" is in the catalog and in docs/venue-map.md, but no t() call emits it. Removing a string is out of scope for this issue.
  • The venue package warning lists "areas, grades, places, zones and default modes" on the English side, naming areas and zones as two things. Changing it is a msgid change.

AI-Generated: Yes (Claude Code read the catalog and drafted these changes and this description. I reviewed them before pushing.)

Merge request reports

Loading