aboutsummaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-20 17:33:26 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-20 17:33:26 +0200
commit46ffa91fd4fcc2249cd097b3b3a639d37a7d592e (patch)
tree8aa5ec165685a21c190bee99a3ed58f648d6fdf8 /lang
parent152bba4c94060ea2ac7430dfdf826450ee4f2bd8 (diff)
downloadcolitur-46ffa91fd4fcc2249cd097b3b3a639d37a7d592e.tar.gz
colitur-46ffa91fd4fcc2249cd097b3b3a639d37a7d592e.zip
fix(lang): stop internal book ids reaching output, and finish the docs
Three defects, all found by running the documented examples rather than by reading code. All seven modern-numbering targets carried their own internal id as their Latin name (kings_1.full = kings_1), so --sigla-tradition modern printed "kings_1 19:3-8" -- leaking a key book.mli states is never shown to a reader. They now carry Vulgate-derived Latin names marked CONSTRUCTED: the 1962 Missal uses Vulgate numbering throughout, so it can contain no incipit for a book that exists only under a later convention. In Latin the modern tradition therefore only moves Kings and Esdras; Osee, Ionas, Ecclesiasticus and the Apocalypse keep their names either way, since modern numbering is a vernacular convention. The coverage test could not catch this. It compares a name against its KEY ("kings_1.full"), and "kings_1" differs from that, so the row passed. A second check now asserts no name IS its own id. The two are complementary: one catches a missing row, the other a row present but filled with the wrong thing. Mutation-proved. --help still claimed sigla settings were resolved "but not yet rendered", stale since the render wiring landed. colitur-config.5 documented none of the three settings even though config --show prints them.
Diffstat (limited to 'lang')
-rw-r--r--lang/la.ini51
1 files changed, 37 insertions, 14 deletions
diff --git a/lang/la.ini b/lang/la.ini
index 369d6b3..3783482 100644
--- a/lang/la.ini
+++ b/lang/la.ini
@@ -2157,17 +2157,40 @@ apocalypse.abbr = Apoc
; render one of these bare ids straight into a citation.
; UNSOURCED (all seven rows below -- see this section's own header
; immediately above for why: a category mismatch, not a search gap).
-kings_1.full = kings_1
-kings_1.abbr = kings_1
-kings_2.full = kings_2
-kings_2.abbr = kings_2
-nehemiah.full = nehemiah
-nehemiah.abbr = nehemiah
-sirach.full = sirach
-sirach.abbr = sirach
-hosea.full = hosea
-hosea.abbr = hosea
-jonah.full = jonah
-jonah.abbr = jonah
-revelation.full = revelation
-revelation.abbr = revelation
+; The seven MODERN-NUMBERING targets. All CONSTRUCTED, and necessarily so:
+; the 1962 Missal uses Vulgate numbering throughout, so it can contain no
+; incipit for a book that exists only under a later convention. Latin forms
+; follow the Vulgate's own naming for the same physical book.
+;
+; They were previously set to the internal id ("kings_1.full = kings_1") by
+; applying the UNSOURCED rule mechanically -- but that rule says to fall back
+; to the spelling THE DATA USES, and these books are never cited by the data
+; at all, so the fallback yielded the id. `--sigla-tradition modern` then
+; printed "kings_1 19:3-8", leaking an internal key that book.mli states is
+; never shown to a reader.
+;
+; Note that in LATIN the modern tradition only really moves Kings and Esdras:
+; Osee, Ionas, Ecclesiasticus and the Apocalypse keep their Vulgate names, so
+; those four map to an identical rendering. That is correct, not a no-op bug
+; -- modern numbering is a vernacular convention, and these files show it.
+kings_1.full = Liber Regum I
+; CONSTRUCTED -- same reasoning as kings_3.full above, one volume lower.
+kings_1.abbr = 1 Reg
+kings_2.full = Liber Regum II
+; CONSTRUCTED.
+kings_2.abbr = 2 Reg
+nehemiah.full = Liber Nehemiae
+; CONSTRUCTED. The Vulgate calls this book 2 Esdras; see esdras_2 above.
+nehemiah.abbr = Neh
+sirach.full = Liber Ecclesiastici
+; CONSTRUCTED. Same book as ecclesiasticus above, under its modern name.
+sirach.abbr = Sir
+hosea.full = Osee Propheta
+; CONSTRUCTED. Identical to osee above -- see the note at the top of this block.
+hosea.abbr = Os
+jonah.full = Ionas Propheta
+; CONSTRUCTED. Identical to jonas above.
+jonah.abbr = Ion
+revelation.full = Apocalypsis
+; CONSTRUCTED. Identical to apocalypse above.
+revelation.abbr = Apoc