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. --- lib/naming/lang.mli | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'lib/naming/lang.mli') diff --git a/lib/naming/lang.mli b/lib/naming/lang.mli index 36931d4..4d7f82f 100644 --- a/lib/naming/lang.mli +++ b/lib/naming/lang.mli @@ -49,6 +49,12 @@ val rank : t -> string -> string val colour : t -> string -> string val term : t -> string -> string +(** A rite id's reader-facing display name (e.g. ["ef"] -> + ["Missale Romanum, editio typica 1962"]). A miss returns the id itself, + same TOTAL-lookup contract as every other function here -- the same + degradation an unnamed slug already gets, not a special case. *) +val rite : t -> string -> string + (** [weekday t n], 0 = Sunday. Out-of-range [n] returns [string_of_int n]. *) val weekday : t -> int -> string -- cgit v1.3