Bulk-author nameLa for all 299 remaining saints, close bilingual header backlog
Deploy / deploy (push) Successful in 1m31s

Authors a real Latin nameLa for every saint in src/data/calendar/saints/
except the deliberate example-confessor placeholder (standard
ecclesiastical Latin forms, a lighter sourcing bar than this app's usual
reference-engine verification -- flagged for future spot-check). Fixes a
real mechanism bug found in the process: calendar/index.ts's sanctoral
collision-resolution branch was dropping nameLa for any saint that won
after beating another same-day candidate. Updates ~180 pre-existing test
fixtures across the calendar suite for the new field.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EwsZQMjALCvy7u9tFDWmuQ
This commit is contained in:
2026-08-31 06:44:10 -04:00
parent a6261f044a
commit 514300821a
321 changed files with 460 additions and 70 deletions
+7 -6
View File
@@ -14,12 +14,13 @@
// Proper names (a saint's name, an octave's name, a named temporal feast's
// name) carry an optional `nameLa` field alongside the required English
// `name` — see calendar/types.ts's `SanctoralIdentity.nameLa` doc comment.
// Most saints still have no authored Latin name; `biName` falls back to
// the English string as the `la` value in that case (same "surface real
// text rather than block on missing" convention used elsewhere in this
// app), rather than leaving Latin mode showing blanks. The closed,
// mechanism-level vocabulary here (weekdays, ranks, season/ordinal
// phrasing) has always had real Latin authored, independent of this.
// Authored for essentially every saint/octave/named-feast as of 2026-08-31
// (see TODO.md); `biName` still falls back to the English string as the
// `la` value for the rare unauthored case (same "surface real text rather
// than block on missing" convention used elsewhere in this app), rather
// than leaving Latin mode showing blanks. The closed, mechanism-level
// vocabulary here (weekdays, ranks, season/ordinal phrasing) has always
// had real Latin authored, independent of this.
import type { FeastClass, LiturgicalDay, TemporalCategory, Weekday } from './types';
import { easterSunday } from './easter';
import { adventStart, firstSundayStrictlyAfter, sundayOnOrBefore } from './temporal';
+6 -1
View File
@@ -37,7 +37,12 @@ function resolveNativeOccurrence(isoDate: string): { temporalCategory: TemporalC
const collision = resolveCollision(candidate, topCandidate);
clashCommemorations.push(...collision.commemorations);
if (collision.winner.kind === 'sanctoral') {
topCandidate = { id: collision.winner.id, name: collision.winner.name, rank: collision.winner.rank };
topCandidate = {
id: collision.winner.id,
name: collision.winner.name,
nameLa: collision.winner.nameLa,
rank: collision.winner.rank,
};
}
}