From 1935f40c156563c134f87093bf6ec8da1cf4fc46 Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Thu, 20 Aug 2026 10:39:47 +0200 Subject: fix(naming): the rite prints its display name, not the internal id ef The booklet's title page and running header read "Ordo 2027 . ef" -- an internal identifier reaching a reader, the same defect class the sanctoral/temporal slugs were already fixed for. lang/la.ini and lang/en.ini each gain a [rite] section mapping the rite id to a reader-facing name, sourced from the Missal's own title page (docs/research/LT.txt:6 "MISSALE ROMANUM", :15 "EDITIO TYPICA") plus the 1962 dating this project uses throughout (rules-register.md, CLAUDE.md) -- both cited in the ini comments, marked PATTERN since the phrase combines two title-page elements rather than quoting one verbatim heading. Lang.t gains a rite table/lookup (same total, miss-echoes-the-key contract as every other lookup here); View.of_days exposes rite_name alongside the existing rite field, which stays the stable key exactly as slug is kept beside name. Every shipped template that printed {{rite}} now prints {{rite_name}} instead. test_lang_coverage.ml gains a coverage assertion over every rite id the engine can emit -- one today -- so a second rite module (OF) landing without a matching [rite] entry fails loudly instead of printing its own bare id. Goldens regenerated through the Test_view.view_of path test_render_golden.ml itself uses (English with a Latin fallback), not the CLI (whose --lang default is plain Latin and would have pinned output the tests never produce). test/cli.t's own JSON prefix assertion updated to match: rite_name is a real new key in that generic view dump, sitting right after rite. --- lang/la.ini | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'lang/la.ini') diff --git a/lang/la.ini b/lang/la.ini index e82650d..9cbb8fe 100644 --- a/lang/la.ini +++ b/lang/la.ini @@ -156,6 +156,36 @@ gospel = Evangelium commemoration = Commemoratio week = Hebdomada +[rite] +; Every rite id the engine can emit needs a reader-facing display name here +; (test_lang_coverage.ml's own "every rite id has a Latin name" case) -- +; the same discipline [celebration]/[season]/[rank]/[colour] already +; enforce, extended to the one new axis Defect 1 found uncovered: `rite` is +; a stable internal key (Temporal_ef.id = "ef"), never meant for a reader, +; exactly like a slug -- but unlike a slug there was no [rite] section at +; all before this one, so nothing degraded gracefully; the booklet printed +; the bare id "ef" outright. +; +; ef -- PATTERN, not a single verbatim heading: constructed from two +; distinct elements of the Missal's OWN title page, docs/research/LT.txt:6 +; ("MISSALE ROMANUM") and LT.txt:15 ("EDITIO TYPICA"), the standard formula +; a Missale Romanum typical edition has carried on its own cover since +; Trent (LT.txt:8, "SS. CONCILII TRIDENTINI RESTITUTUM" -- present +; unabridged in the full title but dropped here for a running header's +; sake, the same "shorter than the source" trade-off already accepted in +; [term]'s "contents = Index" above). The year is not a quote: 1960 is the +; motu proprio's own promulgation date (LT.txt:102-103, "Rubricarum +; instructum diei 23 iulii anno 1960"), but the RESULTING typical edition +; this project treats as its source of truth is dated 1962 throughout +; docs/research/rules-register.md ("the actual 1962 typical edition") and +; this project's own CLAUDE.md ("the 1962 Missale Romanum") -- both +; disclosed here rather than mechanically cited, since neither is an +; LT.txt line. No single phrase in either scan says "1962" against this +; book's own cover (the year is a publication fact, not a title-page +; word), so appending it is a deliberate, disclosed choice for a reader +; who needs to know WHICH typical edition this is, not an invented title. +ef = Missale Romanum, editio typica 1962 + [celebration] ; --------------------------------------------------------------------- ; TEMPORAL slugs only (^ef-). The SANCTORAL half (a fixed saint's day, not -- cgit v1.3