Compare commits

...

2 Commits

Author SHA1 Message Date
will 6fedcd7f2b Add English translations for octave-reading source attributions
Deploy / deploy (push) Successful in 1m13s
Every octave-reading yml's source field held only the Latin
attribution copied verbatim from the breviary text; add the matching
English translation now that the field carries both languages.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L3wxvz3mPXiHxkPB5JpnmD
2026-08-21 08:04:13 -04:00
will b52b202909 Make octave-reading source attribution bilingual
The heading above each Matins octave reading was a bare Latin string
(e.g. "Sermo sancti Bernárdi Abbátis") rendered as-is in both the
Latin and English columns, since the app shows both languages side
by side rather than toggling. Widen OctaveReadingText.source and the
lesson part's label to carry per-language text, and render it as its
own lang-columns row like the body text beneath it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L3wxvz3mPXiHxkPB5JpnmD
2026-08-21 08:04:03 -04:00
40 changed files with 146 additions and 44 deletions
@@ -6,7 +6,9 @@
# the whole octave (a different excerpt each day), confirmed via each day's # the whole octave (a different excerpt each day), confirmed via each day's
# own Invitatory. # own Invitatory.
id: all-saints-octave-day-2 id: all-saints-octave-day-2
source: "Incipit liber Ezechiélis Prophétæ" source:
la: "Incipit liber Ezechiélis Prophétæ"
en: "Here begins the Book of the Prophet Ezekiel"
passages: passages:
- { book: ezek, chapter: 1, verses: "1-3" } - { book: ezek, chapter: 1, verses: "1-3" }
- { book: ezek, chapter: 1, verses: "4-6" } - { book: ezek, chapter: 1, verses: "4-6" }
@@ -3,7 +3,9 @@
# own octave -- a direct Scripture reading (Ezekiel 2:2-9), resolved from # own octave -- a direct Scripture reading (Ezekiel 2:2-9), resolved from
# data/scripture/ezek-2.yml. # data/scripture/ezek-2.yml.
id: all-saints-octave-day-3 id: all-saints-octave-day-3
source: "De Ezechiéle Prophéta" source:
la: "De Ezechiéle Prophéta"
en: "From the Prophet Ezekiel"
passages: passages:
- { book: ezek, chapter: 2, verses: "2-5" } - { book: ezek, chapter: 2, verses: "2-5" }
- { book: ezek, chapter: 2, verses: "6-7" } - { book: ezek, chapter: 2, verses: "6-7" }
@@ -3,7 +3,9 @@
# own octave -- a direct Scripture reading (Ezekiel 3:1-13), resolved from # own octave -- a direct Scripture reading (Ezekiel 3:1-13), resolved from
# data/scripture/ezek-3.yml. # data/scripture/ezek-3.yml.
id: all-saints-octave-day-4 id: all-saints-octave-day-4
source: "De Ezechiéle Prophéta" source:
la: "De Ezechiéle Prophéta"
en: "From the Prophet Ezekiel"
passages: passages:
- { book: ezek, chapter: 3, verses: "1-4" } - { book: ezek, chapter: 3, verses: "1-4" }
- { book: ezek, chapter: 3, verses: "5-9" } - { book: ezek, chapter: 3, verses: "5-9" }
@@ -3,7 +3,9 @@
# own octave -- a direct Scripture reading (Ezekiel 7:1-13), resolved from # own octave -- a direct Scripture reading (Ezekiel 7:1-13), resolved from
# data/scripture/ezek-7.yml. # data/scripture/ezek-7.yml.
id: all-saints-octave-day-5 id: all-saints-octave-day-5
source: "De Ezechiéle Prophéta" source:
la: "De Ezechiéle Prophéta"
en: "From the Prophet Ezekiel"
passages: passages:
- { book: ezek, chapter: 7, verses: "1-4" } - { book: ezek, chapter: 7, verses: "1-4" }
- { book: ezek, chapter: 7, verses: "5-9" } - { book: ezek, chapter: 7, verses: "5-9" }
@@ -3,7 +3,9 @@
# own octave -- a direct Scripture reading (Ezekiel 13:1-14), resolved from # own octave -- a direct Scripture reading (Ezekiel 13:1-14), resolved from
# data/scripture/ezek-13.yml. # data/scripture/ezek-13.yml.
id: all-saints-octave-day-6 id: all-saints-octave-day-6
source: "De Ezechiéle Prophéta" source:
la: "De Ezechiéle Prophéta"
en: "From the Prophet Ezekiel"
passages: passages:
- { book: ezek, chapter: 13, verses: "1-6" } - { book: ezek, chapter: 13, verses: "1-6" }
- { book: ezek, chapter: 13, verses: "7-10" } - { book: ezek, chapter: 13, verses: "7-10" }
@@ -3,7 +3,9 @@
# own octave -- spans two chapters (Ezekiel 15:1-8 and 16:1-5), resolved from # own octave -- spans two chapters (Ezekiel 15:1-8 and 16:1-5), resolved from
# data/scripture/ezek-15.yml and ezek-16.yml. # data/scripture/ezek-15.yml and ezek-16.yml.
id: all-saints-octave-day-7 id: all-saints-octave-day-7
source: "De Ezechiéle Prophéta" source:
la: "De Ezechiéle Prophéta"
en: "From the Prophet Ezekiel"
passages: passages:
- { book: ezek, chapter: 15, verses: "1-5" } - { book: ezek, chapter: 15, verses: "1-5" }
- { book: ezek, chapter: 15, verses: "6-8" } - { book: ezek, chapter: 15, verses: "6-8" }
@@ -3,7 +3,9 @@
# own octave -- a direct Scripture reading (Ezekiel 19:1-14), resolved from # own octave -- a direct Scripture reading (Ezekiel 19:1-14), resolved from
# data/scripture/ezek-19.yml. # data/scripture/ezek-19.yml.
id: all-saints-octave-day-8 id: all-saints-octave-day-8
source: "De Ezechiéle Prophéta" source:
la: "De Ezechiéle Prophéta"
en: "From the Prophet Ezekiel"
passages: passages:
- { book: ezek, chapter: 19, verses: "1-7" } - { book: ezek, chapter: 19, verses: "1-7" }
- { book: ezek, chapter: 19, verses: "8-11" } - { book: ezek, chapter: 19, verses: "8-11" }
@@ -12,7 +12,9 @@
# since guessing where they belong isn't the same class of fix as an isolated # since guessing where they belong isn't the same class of fix as an isolated
# single-character typo. # single-character typo.
id: assumption-octave-day-2 id: assumption-octave-day-2
source: "Sermo sancti Joannis Damasceni" source:
la: "Sermo sancti Joannis Damasceni"
en: "Sermon of St. John Damascene"
text: text:
la: | la: |
Sermo sancti Joannis Damasceni Orat. 2 de Dorm. Deiparæ Jubilemus in arca Domini Dei toto animo, et muri cadent Hiericontini, contrariarum, inquam potestatum infestæ munitiones. Cum David exsultemus spiritu. Arca enim Domini hodie requievit. Clamemus cum Gabriele, qui primum locum obtinet inter angelos: Ave gratia plena: dominus tecum. Ave gaudii pelagus inexhaustum. Ave unicum molestiarum levamen. Aue omnium cordis dolorum medicamentum. Ave sancta virgo per quam mors quidem fuit expulsa, vita autem introducta. Sermo sancti Joannis Damasceni Orat. 2 de Dorm. Deiparæ Jubilemus in arca Domini Dei toto animo, et muri cadent Hiericontini, contrariarum, inquam potestatum infestæ munitiones. Cum David exsultemus spiritu. Arca enim Domini hodie requievit. Clamemus cum Gabriele, qui primum locum obtinet inter angelos: Ave gratia plena: dominus tecum. Ave gaudii pelagus inexhaustum. Ave unicum molestiarum levamen. Aue omnium cordis dolorum medicamentum. Ave sancta virgo per quam mors quidem fuit expulsa, vita autem introducta.
@@ -13,7 +13,9 @@
# same recurring "Vidi speciosam" already used on days 2, 4, and 5 -- # same recurring "Vidi speciosam" already used on days 2, 4, and 5 --
# a standing octave-wide responsory, not day-specific. # a standing octave-wide responsory, not day-specific.
id: assumption-octave-day-3 id: assumption-octave-day-3
source: "Sermo sancti Joannis Damasceni" source:
la: "Sermo sancti Joannis Damasceni"
en: "Sermon of St. John Damascene"
text: text:
la: | la: |
Sermo sancti Joánnis Damascéni Orat. 2 de Dormit. Deíparæ Jubilémus in arca Dómini Dei toto ánimo, et muri cadent Jerichuntíni, contrariárum, inquam, potestátum inféstæ munitiónes. Cum David exsultémus spíritu: Arca enim Dómini hódie requiévit. Clamémus cum Gabriéle, qui primum locum óbtinet inter Angelos: Ave, grátia plena; Dóminus tecum. Ave, gáudii pélagus inexháustum: ave, únicum molestiárum levámen: ave, ómnium cordis dolórum medicaméntum. Ave, sancta Virgo, per quam mors quidem fuit expúlsa, vita autem introdúcta. Sermo sancti Joánnis Damascéni Orat. 2 de Dormit. Deíparæ Jubilémus in arca Dómini Dei toto ánimo, et muri cadent Jerichuntíni, contrariárum, inquam, potestátum inféstæ munitiónes. Cum David exsultémus spíritu: Arca enim Dómini hódie requiévit. Clamémus cum Gabriéle, qui primum locum óbtinet inter Angelos: Ave, grátia plena; Dóminus tecum. Ave, gáudii pélagus inexháustum: ave, únicum molestiárum levámen: ave, ómnium cordis dolórum medicaméntum. Ave, sancta Virgo, per quam mors quidem fuit expúlsa, vita autem introdúcta.
@@ -10,7 +10,9 @@
# since guessing where they belong isn't the same class of fix as an isolated # since guessing where they belong isn't the same class of fix as an isolated
# single-character typo. # single-character typo.
id: assumption-octave-day-4 id: assumption-octave-day-4
source: "De Sermone sancti Joannis Damasceni" source:
la: "De Sermone sancti Joannis Damasceni"
en: "From a Sermon of St. John Damascene"
text: text:
la: | la: |
De Sermone sancti Joannis Damasceni Orat. 2 de Dormitione Deiparæ, n. 18 Ex antíqua accépimus traditióne, quod témpore gloriósæ dormitiónis beátæ Virginis, univérsi quidem sancti Apóstoli, qui orbem terræ ad salútem Géntium peragrábant, moménto témporis in sublíme eláti, convenérunt Jerosólymis. Cumque illic essent, eis vísio appáruit angélica, et audíta est psalmodía cæléstium Potestátum; et sic cum divína glória in manus Dei sanctam trádidit ánimam. Ejus autem corpus, quod Deum ineffábili quadam ratióne suscépit, cum angélica et apostólica hymnodía elátum, in lóculo fuit depósitum Gethsemane; quo in loco Angelórum cantus mansit tres dies contínuos. De Sermone sancti Joannis Damasceni Orat. 2 de Dormitione Deiparæ, n. 18 Ex antíqua accépimus traditióne, quod témpore gloriósæ dormitiónis beátæ Virginis, univérsi quidem sancti Apóstoli, qui orbem terræ ad salútem Géntium peragrábant, moménto témporis in sublíme eláti, convenérunt Jerosólymis. Cumque illic essent, eis vísio appáruit angélica, et audíta est psalmodía cæléstium Potestátum; et sic cum divína glória in manus Dei sanctam trádidit ánimam. Ejus autem corpus, quod Deum ineffábili quadam ratióne suscépit, cum angélica et apostólica hymnodía elátum, in lóculo fuit depósitum Gethsemane; quo in loco Angelórum cantus mansit tres dies contínuos.
@@ -7,7 +7,9 @@
# guessing where they belong isn't the same class of fix as an isolated # guessing where they belong isn't the same class of fix as an isolated
# single-character typo. # single-character typo.
id: assumption-octave-day-5 id: assumption-octave-day-5
source: "Sermo sancti Bernardi Abbátis" source:
la: "Sermo sancti Bernardi Abbátis"
en: "Sermon of St. Bernard, Abbot"
text: text:
la: | la: |
Sermo sancti Bernardi Abbátis Sermo 1 de Assumpt. B. M. V. n. 1 Virgo, hódie gloriósa cælos ascendens, gaudiæ civium copiósis sine dúbio cumulávit augméntis. Hæc est enim, cujus salutatiónis vox et ipsos exsultáre facit in gáudio, quos matérna adhuc víscera claudunt. Quod, si párvuli necdum nati anima liquefácta est, ut María locúta est; quid putámus, quænam illa fúerit cæléstium exsultátio, cum et vocem audíre, et vidére fáciem, et beáta ejus frui præséntia meruérunt? Sermo sancti Bernardi Abbátis Sermo 1 de Assumpt. B. M. V. n. 1 Virgo, hódie gloriósa cælos ascendens, gaudiæ civium copiósis sine dúbio cumulávit augméntis. Hæc est enim, cujus salutatiónis vox et ipsos exsultáre facit in gáudio, quos matérna adhuc víscera claudunt. Quod, si párvuli necdum nati anima liquefácta est, ut María locúta est; quid putámus, quænam illa fúerit cæléstium exsultátio, cum et vocem audíre, et vidére fáciem, et beáta ejus frui præséntia meruérunt?
@@ -6,7 +6,9 @@
# unlike prose that merely cites a verse or two). Each entry below is its # unlike prose that merely cites a verse or two). Each entry below is its
# own paragraph, preserving the source's original three-lesson breaks. # own paragraph, preserving the source's original three-lesson breaks.
id: assumption-octave-day-6 id: assumption-octave-day-6
source: "De libro Sapiéntiæ" source:
la: "De libro Sapiéntiæ"
en: "From the Book of Wisdom"
passages: passages:
- { book: sap, chapter: 4, verses: "7-12" } - { book: sap, chapter: 4, verses: "7-12" }
- { book: sap, chapter: 4, verses: "13-16" } - { book: sap, chapter: 4, verses: "13-16" }
@@ -7,7 +7,9 @@
# guessing where they belong isn't the same class of fix as an isolated # guessing where they belong isn't the same class of fix as an isolated
# single-character typo. # single-character typo.
id: assumption-octave-day-7 id: assumption-octave-day-7
source: "Sermo sancti Bernárdi Abbátis" source:
la: "Sermo sancti Bernárdi Abbátis"
en: "Sermon of St. Bernard, Abbot"
text: text:
la: | la: |
Sermo sancti Bernárdi Abbátis Sermo 4 de Assumpionis n. 1 Tempus loquéndi est omni carni, cum assúmitur incarnáti Verbi Mater in cælum, nec cessáre debet a láudibus humána mortálitas, cum hóminis sola natúra supra immortáles spíritus exaltátur in Vírgine. Sed de ejus glória nec silére devótio pátitur, nec dignum áliquid stérilis concípere cogitátio, aut inerrudíta potest locútio parturíre. Hinc est, quod et ipsi cæléstis cúriæ príncipes in consideratióne tantæ novitátis clamant non sine admiratióne: Quæ est ista, quæ ascéndit de desérto delíciis áffluens? Sermo sancti Bernárdi Abbátis Sermo 4 de Assumpionis n. 1 Tempus loquéndi est omni carni, cum assúmitur incarnáti Verbi Mater in cælum, nec cessáre debet a láudibus humána mortálitas, cum hóminis sola natúra supra immortáles spíritus exaltátur in Vírgine. Sed de ejus glória nec silére devótio pátitur, nec dignum áliquid stérilis concípere cogitátio, aut inerrudíta potest locútio parturíre. Hinc est, quod et ipsi cæléstis cúriæ príncipes in consideratióne tantæ novitátis clamant non sine admiratióne: Quæ est ista, quæ ascéndit de desérto delíciis áffluens?
@@ -4,7 +4,9 @@
# Scripture reading (Canticles 8:5-10), resolved from # Scripture reading (Canticles 8:5-10), resolved from
# data/scripture/cant-8.yml (2026-08 decision). # data/scripture/cant-8.yml (2026-08 decision).
id: assumption-octave-day-8 id: assumption-octave-day-8
source: "De Canticis canticorum" source:
la: "De Canticis canticorum"
en: "From the Song of Songs"
passages: passages:
- { book: cant, chapter: 8, verses: "5-6" } - { book: cant, chapter: 8, verses: "5-6" }
- { book: cant, chapter: 8, verses: "7-8" } - { book: cant, chapter: 8, verses: "7-8" }
@@ -16,7 +16,9 @@
# -- not corrected here, since guessing where they belong isn't the same class # -- not corrected here, since guessing where they belong isn't the same class
# of fix as an isolated single-character typo. # of fix as an isolated single-character typo.
id: christmas-day-octave-day-6 id: christmas-day-octave-day-6
source: "Léctio sancti Evangélii secúndum Lucam" source:
la: "Léctio sancti Evangélii secúndum Lucam"
en: "Reading from the Holy Gospel according to Luke"
text: text:
la: | la: |
Léctio sancti Evangélii secúndum Lucam Luc 2:33-40 In illo témpore: Erat Joseph, et María mater Jesu, mirántes super his, quæ dicebántur de illo. Et réliqua. Homilía sancti Ambrósii Epíscopi Lib. 2 in cap. 2 Lucæ, prope finem Vides úberem in omnes grátiam, Dómini generatióne diffúsam, et prophetíam incrédulis negátam esse, non justis. Ecce et Símeon prophétat, in ruínam et resurrectiónem plurimórum venísse Dóminum Jesum Christum, ut justórum, iniquorúmque mérita discérnat; et pro nostrórum qualitáte factórum, judex verus et justus aut supplícia decérnat, aut prǽmia. Léctio sancti Evangélii secúndum Lucam Luc 2:33-40 In illo témpore: Erat Joseph, et María mater Jesu, mirántes super his, quæ dicebántur de illo. Et réliqua. Homilía sancti Ambrósii Epíscopi Lib. 2 in cap. 2 Lucæ, prope finem Vides úberem in omnes grátiam, Dómini generatióne diffúsam, et prophetíam incrédulis negátam esse, non justis. Ecce et Símeon prophétat, in ruínam et resurrectiónem plurimórum venísse Dóminum Jesum Christum, ut justórum, iniquorúmque mérita discérnat; et pro nostrórum qualitáte factórum, judex verus et justus aut supplícia decérnat, aut prǽmia.
@@ -14,7 +14,9 @@
# latter matching how the same phrase is correctly hyphenated earlier in the # latter matching how the same phrase is correctly hyphenated earlier in the
# same file). # same file).
id: immaculate-conception-octave-day-2 id: immaculate-conception-octave-day-2
source: "Ex Bulla dogmatica Pii Papæ IX; Homilía sancti Sophrónii Epíscopi" source:
la: "Ex Bulla dogmatica Pii Papæ IX; Homilía sancti Sophrónii Epíscopi"
en: "From the Dogmatic Bull of Pope Pius IX; Homily of St. Sophronius, Bishop"
text: text:
la: | la: |
Ineffabilis Deus, cujus viæ misericordia et veritas, cujus voluntas omnipotentia, et cujus sapientia attingit a fine usque ad finem fortiter, et disponit omnia suaviter, cum ab omni æternitate præviderit luctuosissimam totius humani generis ruinam ex Adami transgressione derivandam, atque in mysterio a sæculis abscondito primum suæ bonitatis opus decreverit per Verbi incarnationem sacramento occultiore complere, ut contra misericors suum propositum homo diabolicæ iniquitatis versutia actus in culpam non periret, et quod in primo Adamo casurum erat, in secundo felicius erigeretur, ab initio et ante sæcula unigenito Filio suo Matrem, ex qua caro factus in beata temporum plenitudine nasceretur, elegit atque ordinavit, tantoque præ creaturis universis est prosecutus amóre, ut in illa una sibi propensissima voluntate complacuerit. Ineffabilis Deus, cujus viæ misericordia et veritas, cujus voluntas omnipotentia, et cujus sapientia attingit a fine usque ad finem fortiter, et disponit omnia suaviter, cum ab omni æternitate præviderit luctuosissimam totius humani generis ruinam ex Adami transgressione derivandam, atque in mysterio a sæculis abscondito primum suæ bonitatis opus decreverit per Verbi incarnationem sacramento occultiore complere, ut contra misericors suum propositum homo diabolicæ iniquitatis versutia actus in culpam non periret, et quod in primo Adamo casurum erat, in secundo felicius erigeretur, ab initio et ante sæcula unigenito Filio suo Matrem, ex qua caro factus in beata temporum plenitudine nasceretur, elegit atque ordinavit, tantoque præ creaturis universis est prosecutus amóre, ut in illa una sibi propensissima voluntate complacuerit.
@@ -8,7 +8,9 @@
# dogmatic bull "Ineffabilis Deus" with a homily of St. Bernard of Clairvaux # dogmatic bull "Ineffabilis Deus" with a homily of St. Bernard of Clairvaux
# on the Annunciation ("Missus est"). # on the Annunciation ("Missus est").
id: immaculate-conception-octave-day-3 id: immaculate-conception-octave-day-3
source: "Ex Bulla dogmatica Pii Papæ IX; Homilía sancti Bernárdi Abbátis" source:
la: "Ex Bulla dogmatica Pii Papæ IX; Homilía sancti Bernárdi Abbátis"
en: "From the Dogmatic Bull of Pope Pius IX; Homily of St. Bernard, Abbot"
text: text:
la: | la: |
Ipsissima verba, quibus divinæ Scripturæ de increata Sapientia loquuntur, ejusque sempiternas origines repræsentant, consuevit (Ecclesia) tum in ecclesiasticis officiis, tum in sacrosancta liturgia adhibere et ad illius Virginis primordia transferre, quæ uno eodemque decreto cum divinæ Sapientiæ incarnatione fuerant præstituta. Quamvis autem hæc omnia penes fideles ubique prope recepta ostendant, quo studio ejusmodi de Immaculata Virginis Conceptione doctrinam ipsa quoque Romana Ecclesia omnium ecclesiarum mater et magistra fuerit prosecuta, tamen illustria hujus Ecclesiæ facta digna plane sunt, quæ nominatim recenseantur cum tanta sit ejusdem Ecclesiæ dignitas atque auctoritas, quanta illi omnino debetur, quæ est catholicæ veritatis et unitatis centrum, in qua solum inviolabiliter fuit custodita religio, et ex qua traducem fidei reliquæ omnes ecclesiæ mutuentur oportet. Ipsissima verba, quibus divinæ Scripturæ de increata Sapientia loquuntur, ejusque sempiternas origines repræsentant, consuevit (Ecclesia) tum in ecclesiasticis officiis, tum in sacrosancta liturgia adhibere et ad illius Virginis primordia transferre, quæ uno eodemque decreto cum divinæ Sapientiæ incarnatione fuerant præstituta. Quamvis autem hæc omnia penes fideles ubique prope recepta ostendant, quo studio ejusmodi de Immaculata Virginis Conceptione doctrinam ipsa quoque Romana Ecclesia omnium ecclesiarum mater et magistra fuerit prosecuta, tamen illustria hujus Ecclesiæ facta digna plane sunt, quæ nominatim recenseantur cum tanta sit ejusdem Ecclesiæ dignitas atque auctoritas, quanta illi omnino debetur, quæ est catholicæ veritatis et unitatis centrum, in qua solum inviolabiliter fuit custodita religio, et ex qua traducem fidei reliquæ omnes ecclesiæ mutuentur oportet.
@@ -11,7 +11,9 @@
# Guadalupe, a much later, 1531 devotion) is deliberately omitted -- not # Guadalupe, a much later, 1531 devotion) is deliberately omitted -- not
# part of the Immaculate Conception's own continuous reading. # part of the Immaculate Conception's own continuous reading.
id: immaculate-conception-octave-day-5 id: immaculate-conception-octave-day-5
source: "Ex Bulla dogmatica Pii Papæ IX; Homilía sancti Tharásii Epíscopi" source:
la: "Ex Bulla dogmatica Pii Papæ IX; Homilía sancti Tharásii Epíscopi"
en: "From the Dogmatic Bull of Pope Pius IX; Homily of St. Tarasius, Bishop"
text: text:
la: | la: |
Quoniam quæ ad cultum pertinent, intimo plane vinculo cum ejusdem objecto conserta sunt, neque rata et fixa manere possunt, si illud anceps sit et in ambiguo versetur, idcirco decessores nostri Romani Pontifices omni cura Conceptionis cultum amplificantes illius etiam objectum ac doctrinam declarare, et inculcare impensissime studuerunt. Etenim clare aperteque docuere, festum agi de Virginis Conceptione, atque uti falsam et ab Ecclesiæ mente alienissimam proscripserunt illorum opinionem qui non Conceptionem ipsam, sed sanctificationem ab Ecclesia coli arbitrarentur et affirmarent. Quoniam quæ ad cultum pertinent, intimo plane vinculo cum ejusdem objecto conserta sunt, neque rata et fixa manere possunt, si illud anceps sit et in ambiguo versetur, idcirco decessores nostri Romani Pontifices omni cura Conceptionis cultum amplificantes illius etiam objectum ac doctrinam declarare, et inculcare impensissime studuerunt. Etenim clare aperteque docuere, festum agi de Virginis Conceptione, atque uti falsam et ab Ecclesiæ mente alienissimam proscripserunt illorum opinionem qui non Conceptionem ipsam, sed sanctificationem ab Ecclesia coli arbitrarentur et affirmarent.
@@ -11,7 +11,9 @@
# plain cross-reference to a generic Common formula) are omitted, same as # plain cross-reference to a generic Common formula) are omitted, same as
# every other day's own Nocturn I. # every other day's own Nocturn I.
id: immaculate-conception-octave-day-7 id: immaculate-conception-octave-day-7
source: "Ex Bulla dogmatica Pii Papæ IX; Homilía sancti Sophrónii Epíscopi" source:
la: "Ex Bulla dogmatica Pii Papæ IX; Homilía sancti Sophrónii Epíscopi"
en: "From the Dogmatic Bull of Pope Pius IX; Homily of St. Sophronius, Bishop"
text: text:
la: | la: |
Omnes norunt quanto studio hæc de immaculáta Deiparæ Vírginis Conceptióne doctrina a spectatíssimis religiosis familiis et celebrióribus theologicis academíis, ac præstantíssimis divinárum rerum sciéntia doctóribus fúerit trádita, asserta ac propugnata. Omnes páriter norunt quantopere solliciti fúerint Sacrórum antistites vel in ipsis ecclesiásticis convéntibus palam publiceque profiteri, sanctíssimam Dei Genitricem Vírginem Mariam, ob prævisa Christi Dómini Redemptoris merita, numquam originali labe, et idcirco sublimiori modo redemptam. Quibus illud profecto gravíssimum et omnino maximum accedit, ipsam quoque Tridentinam synodum, cum dogmaticum de peccáto originali ederet decretum, státuit ac definívit: Omnes hómines nasci originali culpa infectos; tamen solemniter declarasse: Non esse suæ intentiónis, in decreto ipso tantáque definitiónis amplitúdine comprehéndere beátam et immaculátam Vírginem Dei Genitricem Mariam. Omnes norunt quanto studio hæc de immaculáta Deiparæ Vírginis Conceptióne doctrina a spectatíssimis religiosis familiis et celebrióribus theologicis academíis, ac præstantíssimis divinárum rerum sciéntia doctóribus fúerit trádita, asserta ac propugnata. Omnes páriter norunt quantopere solliciti fúerint Sacrórum antistites vel in ipsis ecclesiásticis convéntibus palam publiceque profiteri, sanctíssimam Dei Genitricem Vírginem Mariam, ob prævisa Christi Dómini Redemptoris merita, numquam originali labe, et idcirco sublimiori modo redemptam. Quibus illud profecto gravíssimum et omnino maximum accedit, ipsam quoque Tridentinam synodum, cum dogmaticum de peccáto originali ederet decretum, státuit ac definívit: Omnes hómines nasci originali culpa infectos; tamen solemniter declarasse: Non esse suæ intentiónis, in decreto ipso tantáque definitiónis amplitúdine comprehéndere beátam et immaculátam Vírginem Dei Genitricem Mariam.
@@ -7,7 +7,9 @@
# guessing where they belong isn't the same class of fix as an isolated # guessing where they belong isn't the same class of fix as an isolated
# single-character typo. # single-character typo.
id: nativity-bvm-octave-day-2 id: nativity-bvm-octave-day-2
source: "De Sermone sancti Augustíni Epíscopi." source:
la: "De Sermone sancti Augustíni Epíscopi."
en: "From a Sermon of St. Augustine, Bishop"
text: text:
la: | la: |
De Sermone sancti Augustíni Epíscopi. Serm. 18. de Sanctis, in med. Exsultat Maria, et matrem se læta miratur, et de Spiritu sancto se peperisse gaudet; nec quia peperit innupta, terretur; sed quia genuerit, cum exsultatione miratur. Ofemina super feminas benedicta, quæ virum omnino non novit, et virum suo utero circumdedit! Circumdat virum Maria Angelo fidem dando, quia Heva perdidit virum, serpenti consentiendo. Ofelix obedientia, o insignis gratia! quæ dum fidem humiliter dedit, cæli in se opificem corporavit. Hinc promeruit gloriam, quam ipsa postmodum auxit. Ecce, ait, ex hoc beatam me dicent omnes generationes. De Sermone sancti Augustíni Epíscopi. Serm. 18. de Sanctis, in med. Exsultat Maria, et matrem se læta miratur, et de Spiritu sancto se peperisse gaudet; nec quia peperit innupta, terretur; sed quia genuerit, cum exsultatione miratur. Ofemina super feminas benedicta, quæ virum omnino non novit, et virum suo utero circumdedit! Circumdat virum Maria Angelo fidem dando, quia Heva perdidit virum, serpenti consentiendo. Ofelix obedientia, o insignis gratia! quæ dum fidem humiliter dedit, cæli in se opificem corporavit. Hinc promeruit gloriam, quam ipsa postmodum auxit. Ecce, ait, ex hoc beatam me dicent omnes generationes.
@@ -7,7 +7,9 @@
# guessing where they belong isn't the same class of fix as an isolated # guessing where they belong isn't the same class of fix as an isolated
# single-character typo. # single-character typo.
id: nativity-bvm-octave-day-4 id: nativity-bvm-octave-day-4
source: "Sermo sancti Bernardi Abbatis." source:
la: "Sermo sancti Bernardi Abbatis."
en: "Sermon of St. Bernard, Abbot"
text: text:
la: | la: |
Sermo sancti Bernardi Abbatis. Sermo in cap. 12. Apocalypsis, ante medium. Novum fecit Dominus super terram, ut mulier circumdaret virum, nec alium quam Christum, de quo dicitur: Ecce vir, Oriens nomen ejus. Novum quoque fecit in cælo, ut mulier sole appareret amicta. Denique et coronavit eum, et vicissim ab eo meruit coronari. Egredimini filiæ Sion, et videte regem Salomonem in diademate, quo coronavit eum mater sua. Verum hoc alias. Interim sane ingredimini magis, et videte Reginam in diademate, quo coronavit eam filius suus. In capite, inquit, ejus corona stellarum duodecim. Sermo sancti Bernardi Abbatis. Sermo in cap. 12. Apocalypsis, ante medium. Novum fecit Dominus super terram, ut mulier circumdaret virum, nec alium quam Christum, de quo dicitur: Ecce vir, Oriens nomen ejus. Novum quoque fecit in cælo, ut mulier sole appareret amicta. Denique et coronavit eum, et vicissim ab eo meruit coronari. Egredimini filiæ Sion, et videte regem Salomonem in diademate, quo coronavit eum mater sua. Verum hoc alias. Interim sane ingredimini magis, et videte Reginam in diademate, quo coronavit eam filius suus. In capite, inquit, ejus corona stellarum duodecim.
@@ -10,7 +10,9 @@
# since guessing where they belong isn't the same class of fix as an isolated # since guessing where they belong isn't the same class of fix as an isolated
# single-character typo. # single-character typo.
id: nativity-bvm-octave-day-5 id: nativity-bvm-octave-day-5
source: "Sermo Sancti Joánnis Chrysóstomi." source:
la: "Sermo Sancti Joánnis Chrysóstomi."
en: "Sermon of St. John Chrysostom"
text: text:
la: | la: |
Sermo Sancti Joánnis Chrysóstomi. Apud Metaphrast. Dei Fílius non díuitem, aut locuplétem áliquam féminam sibi matrem elégit, sed beátam vírginem illa, cujus ánima virtútibus ornáta erat. Cum enim beáta María supra omnem humánam natúram castitátem seruáret, proptérea Christum Dóminum in ventre concépit. Ad hanc ígitur sanctíssimam vírginem et Dei matrem accurréntes, ejus patrocíniis utilitátem assequámur. Ítaque quacúmque estis vírgines, ad matrem Dómini confúgite. Illa enim pulchérrimam, pretiosíssimam, et incorruptíbilem possessiónem patrocínio suo vobis conservábit. Sermo Sancti Joánnis Chrysóstomi. Apud Metaphrast. Dei Fílius non díuitem, aut locuplétem áliquam féminam sibi matrem elégit, sed beátam vírginem illa, cujus ánima virtútibus ornáta erat. Cum enim beáta María supra omnem humánam natúram castitátem seruáret, proptérea Christum Dóminum in ventre concépit. Ad hanc ígitur sanctíssimam vírginem et Dei matrem accurréntes, ejus patrocíniis utilitátem assequámur. Ítaque quacúmque estis vírgines, ad matrem Dómini confúgite. Illa enim pulchérrimam, pretiosíssimam, et incorruptíbilem possessiónem patrocínio suo vobis conservábit.
@@ -7,7 +7,9 @@
# guessing where they belong isn't the same class of fix as an isolated # guessing where they belong isn't the same class of fix as an isolated
# single-character typo. # single-character typo.
id: nativity-bvm-octave-day-6 id: nativity-bvm-octave-day-6
source: "Ex libro sancti Epiphanii Epíscopi adversus hæreses" source:
la: "Ex libro sancti Epiphanii Epíscopi adversus hæreses"
en: "From the book of St. Epiphanius, Bishop, Against Heresies"
text: text:
la: | la: |
Ex libro sancti Epiphanii Epíscopi adversus hæreses Lib. 3. hæresi 78. post medium. Beata Mater Dei Maria per Hevam significatur, quæ per ænigma accepit, ut mater viventium vocetur. Illa etenim mater viventium vocata est, étiam postquam audivit: Terra es, et in terram reverteris, post transgressionem. Et mirum est, quod post transgressionem hoc magnum cognomen habuit. Et quod quidem pertinet ad rem sensibilem, ab illa Heva omnis hominum generatio deducta est in terra: hic autem vere a Maria hæc vita mundo genita est, ut viventem gigneret, et fieret Maria mater viventium. Per ænigma igitur Maria mater viventium appellata est. Ex libro sancti Epiphanii Epíscopi adversus hæreses Lib. 3. hæresi 78. post medium. Beata Mater Dei Maria per Hevam significatur, quæ per ænigma accepit, ut mater viventium vocetur. Illa etenim mater viventium vocata est, étiam postquam audivit: Terra es, et in terram reverteris, post transgressionem. Et mirum est, quod post transgressionem hoc magnum cognomen habuit. Et quod quidem pertinet ad rem sensibilem, ab illa Heva omnis hominum generatio deducta est in terra: hic autem vere a Maria hæc vita mundo genita est, ut viventem gigneret, et fieret Maria mater viventium. Per ænigma igitur Maria mater viventium appellata est.
@@ -4,7 +4,9 @@
# Scripture reading (Canticles 1:1-10), resolved from # Scripture reading (Canticles 1:1-10), resolved from
# data/scripture/cant-1.yml (2026-08 decision). # data/scripture/cant-1.yml (2026-08 decision).
id: nativity-bvm-octave-day-8 id: nativity-bvm-octave-day-8
source: "Incípiunt Cántica canticórum" source:
la: "Incípiunt Cántica canticórum"
en: "Here begins the Song of Songs"
passages: passages:
- { book: cant, chapter: 1, verses: "1-3" } - { book: cant, chapter: 1, verses: "1-3" }
- { book: cant, chapter: 1, verses: "4-6" } - { book: cant, chapter: 1, verses: "4-6" }
@@ -5,7 +5,9 @@
# translation for this passage; its English is the standard Douay-Rheims # translation for this passage; its English is the standard Douay-Rheims
# wording (a known, recognized translation, not a draft). # wording (a known, recognized translation, not a draft).
id: pentecost-sunday-octave-day-2 id: pentecost-sunday-octave-day-2
source: "De Actibus Apostolórum" source:
la: "De Actibus Apostolórum"
en: "From the Acts of the Apostles"
passages: passages:
- { book: act, chapter: 19, verses: "1-3" } - { book: act, chapter: 19, verses: "1-3" }
- { book: act, chapter: 19, verses: "4-7" } - { book: act, chapter: 19, verses: "4-7" }
@@ -6,7 +6,9 @@
# its English is the standard Douay-Rheims wording (a known, recognized # its English is the standard Douay-Rheims wording (a known, recognized
# translation, not a draft). # translation, not a draft).
id: pentecost-sunday-octave-day-3 id: pentecost-sunday-octave-day-3
source: "De Joéle Prophéta" source:
la: "De Joéle Prophéta"
en: "From the Prophet Joel"
passages: passages:
- { book: joel, chapter: 2, verses: "23-24" } - { book: joel, chapter: 2, verses: "23-24" }
- { book: joel, chapter: 2, verses: "25-26" } - { book: joel, chapter: 2, verses: "25-26" }
@@ -6,7 +6,9 @@
# marks entirely in places) -- not corrected here, since guessing where they # marks entirely in places) -- not corrected here, since guessing where they
# belong isn't the same class of fix as an isolated single-character typo. # belong isn't the same class of fix as an isolated single-character typo.
id: pentecost-sunday-octave-day-4 id: pentecost-sunday-octave-day-4
source: "Léctio sancti Evangélii secúndum Joánnem" source:
la: "Léctio sancti Evangélii secúndum Joánnem"
en: "Reading from the Holy Gospel according to John"
text: text:
la: | la: |
Léctio sancti Evangélii secúndum Joánnem Joannes 6:44-52 In illo témpore: Dixit Jesus turbis Judæórum: Nemo potest veníre ad me, nisi Pater, qui misit me, tráxerit eum. Et réliqua. Homilía sancti Augustíni Epíscopi Tract. 26 in Joann., post init. Noli cogitáre te invítum trahi: tráhitur ánimus et amóre. Nec timére debémus, ne ab homínibus, qui verba perpéndunt, et a rebus máxime divínis intellegéndis longe remóti sunt, in hoc Scripturárum sanctárum evangélico verbo fórsitan reprehendámur, et dicátur nobis: Quómodo voluntáte credo, si trahor? Ego dico: Parum est voluntáte: étiam voluptáte tráheris. Quid est, trahi voluptáte? Delectáre in Dómino: et dabit tibi petitiónes cordis tui. Est quædam volúptas cordis, cui panis dulcis est ille cæléstis. Porro si poétæ dícere lícuit: Trahit sua quemque volúptas: non necéssitas, sed volúptas; non obligátio, sed delectátio: quanto fórtius nos dícere debémus, trahi hóminem ad Christum, qui delectátur veritáte, delectátur beatitúdine, delectátur justítia, delectátur sempitérna vita, quod totum Christus est? An vero habent córporis sensus voluptátes suas, et ánimus deséritur a voluptátibus suis? Si ánimus non habet voluptátes suas, unde dícitur: Fílii autem hóminum sub tégmine alárum tuárum sperábunt: inebriabúntur ab ubertáte domus tuæ, et torrénte voluptátis tuæ potábis eos. Quóniam apud te est fons vitæ: et in lúmine tuo vidébimus lumen. Léctio sancti Evangélii secúndum Joánnem Joannes 6:44-52 In illo témpore: Dixit Jesus turbis Judæórum: Nemo potest veníre ad me, nisi Pater, qui misit me, tráxerit eum. Et réliqua. Homilía sancti Augustíni Epíscopi Tract. 26 in Joann., post init. Noli cogitáre te invítum trahi: tráhitur ánimus et amóre. Nec timére debémus, ne ab homínibus, qui verba perpéndunt, et a rebus máxime divínis intellegéndis longe remóti sunt, in hoc Scripturárum sanctárum evangélico verbo fórsitan reprehendámur, et dicátur nobis: Quómodo voluntáte credo, si trahor? Ego dico: Parum est voluntáte: étiam voluptáte tráheris. Quid est, trahi voluptáte? Delectáre in Dómino: et dabit tibi petitiónes cordis tui. Est quædam volúptas cordis, cui panis dulcis est ille cæléstis. Porro si poétæ dícere lícuit: Trahit sua quemque volúptas: non necéssitas, sed volúptas; non obligátio, sed delectátio: quanto fórtius nos dícere debémus, trahi hóminem ad Christum, qui delectátur veritáte, delectátur beatitúdine, delectátur justítia, delectátur sempitérna vita, quod totum Christus est? An vero habent córporis sensus voluptátes suas, et ánimus deséritur a voluptátibus suis? Si ánimus non habet voluptátes suas, unde dícitur: Fílii autem hóminum sub tégmine alárum tuárum sperábunt: inebriabúntur ab ubertáte domus tuæ, et torrénte voluptátis tuæ potábis eos. Quóniam apud te est fons vitæ: et in lúmine tuo vidébimus lumen.
@@ -6,7 +6,9 @@
# marks entirely in places) -- not corrected here, since guessing where they # marks entirely in places) -- not corrected here, since guessing where they
# belong isn't the same class of fix as an isolated single-character typo. # belong isn't the same class of fix as an isolated single-character typo.
id: pentecost-sunday-octave-day-5 id: pentecost-sunday-octave-day-5
source: "Léctio sancti Evangélii secúndum Lucam" source:
la: "Léctio sancti Evangélii secúndum Lucam"
en: "Reading from the Holy Gospel according to Luke"
text: text:
la: | la: |
Léctio sancti Evangélii secúndum Lucam Luc 9:1-6 In illo témpore: Convocátis Jesus duódecim Apóstolis, dedit illis virtútem et potestátem super ómnia dæmónia, et ut languóres curárent. Et réliqua. Homilía sancti Ambrósii Epíscopi Liber 6 in cap. 9 Lucæ Qualis débeat esse, qui evangelízat regnum Dei, præcéptis evangélicis designátur: ut sine virga, sine pera, sine calceaménto, sine pane, sine pecúnia, hoc est, subsídii sæculáris adminícula non requírens, fidéque tutus, putet sibi quo minus ea requírat, magis posse suppétere. Quæ possunt, qui volunt, ad eum deriváre tractátum, ut spiritálem tantúmmodo locus iste formáre videátur afféctum: qui velut induméntum quoddam videátur córporis exuísse, non solum potestáte rejécta contemptísque divítiis, sed étiam carnis ipsíus illécebris abdicátis. Quibus primo ómnium datur pacis atque constántiæ generále mandátum, ut pacem ferant, constántiam servent, hospitális necessitúdinis jura custódiant: aliénum a prædicatóre regni cæléstis ástruens cursitáre per domos, et inviolábilis hospítii jura mutáre. Léctio sancti Evangélii secúndum Lucam Luc 9:1-6 In illo témpore: Convocátis Jesus duódecim Apóstolis, dedit illis virtútem et potestátem super ómnia dæmónia, et ut languóres curárent. Et réliqua. Homilía sancti Ambrósii Epíscopi Liber 6 in cap. 9 Lucæ Qualis débeat esse, qui evangelízat regnum Dei, præcéptis evangélicis designátur: ut sine virga, sine pera, sine calceaménto, sine pane, sine pecúnia, hoc est, subsídii sæculáris adminícula non requírens, fidéque tutus, putet sibi quo minus ea requírat, magis posse suppétere. Quæ possunt, qui volunt, ad eum deriváre tractátum, ut spiritálem tantúmmodo locus iste formáre videátur afféctum: qui velut induméntum quoddam videátur córporis exuísse, non solum potestáte rejécta contemptísque divítiis, sed étiam carnis ipsíus illécebris abdicátis. Quibus primo ómnium datur pacis atque constántiæ generále mandátum, ut pacem ferant, constántiam servent, hospitális necessitúdinis jura custódiant: aliénum a prædicatóre regni cæléstis ástruens cursitáre per domos, et inviolábilis hospítii jura mutáre.
@@ -6,7 +6,9 @@
# marks entirely in places) -- not corrected here, since guessing where they # marks entirely in places) -- not corrected here, since guessing where they
# belong isn't the same class of fix as an isolated single-character typo. # belong isn't the same class of fix as an isolated single-character typo.
id: pentecost-sunday-octave-day-6 id: pentecost-sunday-octave-day-6
source: "Léctio sancti Evangélii secúndum Lucam" source:
la: "Léctio sancti Evangélii secúndum Lucam"
en: "Reading from the Holy Gospel according to Luke"
text: text:
la: | la: |
Léctio sancti Evangélii secúndum Lucam Luc 5:17-26 In illo témpore: Factum est in una diérum, et Jesus sedébat docens. Et erant pharisǽi sedéntes, et legis doctóres, qui vénerant ex omni castéllo Galilǽæ et Judǽæ, et Jerúsalem: et virtus Dómini erat ad sanándum eos. Et réliqua. Homilía sancti Ambrósii Epíscopi Liber 5 in cap. 5 Lucæ, post initium Non otiósa hujus paralýtici, nec angústa medicína est, quando Dóminus et orásse præmíttitur; non útique propter suffrágium, sed propter exémplum. Imitándi enim spécimen dedit, non precándi ámbitum requisívit. Et conveniéntibus ex omni Galilǽa, et Judǽa, et Jerúsalem, legis doctóribus, inter ceterórum remédia debílium, paralýtici istíus medicína descríbitur. Primum ómnium, quod ante díximus, unusquísque æger peténdæ precatóres salútis debet adhibére, per quos nostræ vitæ compágo resolúta, actuúmque nostrórum clauda vestígia, verbi cæléstis remédio reforméntur. Léctio sancti Evangélii secúndum Lucam Luc 5:17-26 In illo témpore: Factum est in una diérum, et Jesus sedébat docens. Et erant pharisǽi sedéntes, et legis doctóres, qui vénerant ex omni castéllo Galilǽæ et Judǽæ, et Jerúsalem: et virtus Dómini erat ad sanándum eos. Et réliqua. Homilía sancti Ambrósii Epíscopi Liber 5 in cap. 5 Lucæ, post initium Non otiósa hujus paralýtici, nec angústa medicína est, quando Dóminus et orásse præmíttitur; non útique propter suffrágium, sed propter exémplum. Imitándi enim spécimen dedit, non precándi ámbitum requisívit. Et conveniéntibus ex omni Galilǽa, et Judǽa, et Jerúsalem, legis doctóribus, inter ceterórum remédia debílium, paralýtici istíus medicína descríbitur. Primum ómnium, quod ante díximus, unusquísque æger peténdæ precatóres salútis debet adhibére, per quos nostræ vitæ compágo resolúta, actuúmque nostrórum clauda vestígia, verbi cæléstis remédio reforméntur.
@@ -10,7 +10,9 @@
# -- not corrected here, since guessing where they belong isn't the same class # -- not corrected here, since guessing where they belong isn't the same class
# of fix as an isolated single-character typo. # of fix as an isolated single-character typo.
id: pentecost-sunday-octave-day-7 id: pentecost-sunday-octave-day-7
source: "Léctio sancti Evangélii secúndum Lucam" source:
la: "Léctio sancti Evangélii secúndum Lucam"
en: "Reading from the Holy Gospel according to Luke"
text: text:
la: | la: |
Léctio sancti Evangélii secúndum Lucam Luc 4:38-44 In illo témpore: Surgens Jesus de synagóga, introívit in domum Simónis. Socrus autem Simónis tenebátur magnis fébribus. Et réliqua. Homilía sancti Ambrósii Epíscopi Liber 4 in cap. 4 Lucæ, circa finem Vide cleméntiam Dómini Salvatóris: nec indignatióne commótus nec scélere offénsus, nec injúria violátus Judǽam déserit: quin étiam ímmemor injúriæ, memor cleméntiæ, nunc docéndo, nunc liberándo, nunc sanándo, infídæ plebis corda demúlcet. Et bene sanctus Lucas virum ab spíritu nequítiæ liberátum ante præmísit, et subdit féminæ sanitátem. Utrúmque enim sexum Dóminus curatúrus advénerat: sed prior sanári débuit, qui prior creátus est; nec prætermítti illa, quæ mobilitáte magis ánimi, quam pravitáte peccáverat. Léctio sancti Evangélii secúndum Lucam Luc 4:38-44 In illo témpore: Surgens Jesus de synagóga, introívit in domum Simónis. Socrus autem Simónis tenebátur magnis fébribus. Et réliqua. Homilía sancti Ambrósii Epíscopi Liber 4 in cap. 4 Lucæ, circa finem Vide cleméntiam Dómini Salvatóris: nec indignatióne commótus nec scélere offénsus, nec injúria violátus Judǽam déserit: quin étiam ímmemor injúriæ, memor cleméntiæ, nunc docéndo, nunc liberándo, nunc sanándo, infídæ plebis corda demúlcet. Et bene sanctus Lucas virum ab spíritu nequítiæ liberátum ante præmísit, et subdit féminæ sanitátem. Utrúmque enim sexum Dóminus curatúrus advénerat: sed prior sanári débuit, qui prior creátus est; nec prætermítti illa, quæ mobilitáte magis ánimi, quam pravitáte peccáverat.
@@ -13,7 +13,9 @@
# marks entirely in places) -- not corrected here, since guessing where they # marks entirely in places) -- not corrected here, since guessing where they
# belong isn't the same class of fix as an isolated single-character typo. # belong isn't the same class of fix as an isolated single-character typo.
id: st-lawrence-octave-day-2 id: st-lawrence-octave-day-2
source: "Sermo sancti Augustíni Epíscopi." source:
la: "Sermo sancti Augustíni Epíscopi."
en: "Sermon of St. Augustine, Bishop"
text: text:
la: | la: |
Sermo sancti Augustíni Epíscopi. Serm. 30. de Sanctis. Beatissimi Laurentii Martyris, cujus natalem hodie celebramus, passionem nosse vos credo: et quanta in persecutione pertulerit, dilectionem vestram scire posse non dubito. Tanta enim ejus martyrii gloria exstitit, ut passione sua mundum illuminaverit universum. Illuminavit mundum plane Laurentius eo lumine, quo ipse accensus est, et flammis quas ipse pertulit, omnium Christianorum corda calefecit. Sermo sancti Augustíni Epíscopi. Serm. 30. de Sanctis. Beatissimi Laurentii Martyris, cujus natalem hodie celebramus, passionem nosse vos credo: et quanta in persecutione pertulerit, dilectionem vestram scire posse non dubito. Tanta enim ejus martyrii gloria exstitit, ut passione sua mundum illuminaverit universum. Illuminavit mundum plane Laurentius eo lumine, quo ipse accensus est, et flammis quas ipse pertulit, omnium Christianorum corda calefecit.
@@ -11,7 +11,9 @@
# where they belong isn't the same class of fix as an isolated single- # where they belong isn't the same class of fix as an isolated single-
# character typo. # character typo.
id: st-lawrence-octave-day-3 id: st-lawrence-octave-day-3
source: "De Sermone S. Augustini Episcopi" source:
la: "De Sermone S. Augustini Episcopi"
en: "From a Sermon of St. Augustine, Bishop"
text: text:
la: | la: |
De Sermone S. Augustini Episcopi Ex Sermo 30, de Sanctis Legimus Ananiam, Azariam et Misaelem beatissimos pueros a rege in camino ignis inclusos in poenarum suarum deambulasse flammis, et igneos globos pedibus conculcasse. Unde et beatus Laurentius non minori gloria est praeferendus; siquidem illi in poenarum suarum flammis ambulant, hic et in ipso supplicii sui igne discumbit; illi vestigiis pedum conculcaverunt incendia, iste laterum suorum diffusione extinxit. De Sermone S. Augustini Episcopi Ex Sermo 30, de Sanctis Legimus Ananiam, Azariam et Misaelem beatissimos pueros a rege in camino ignis inclusos in poenarum suarum deambulasse flammis, et igneos globos pedibus conculcasse. Unde et beatus Laurentius non minori gloria est praeferendus; siquidem illi in poenarum suarum flammis ambulant, hic et in ipso supplicii sui igne discumbit; illi vestigiis pedum conculcaverunt incendia, iste laterum suorum diffusione extinxit.
@@ -7,7 +7,9 @@
# marks entirely in places) -- not corrected here, since guessing where they # marks entirely in places) -- not corrected here, since guessing where they
# belong isn't the same class of fix as an isolated single-character typo. # belong isn't the same class of fix as an isolated single-character typo.
id: st-lawrence-octave-day-4 id: st-lawrence-octave-day-4
source: "Ex libro Officiorum S. Ambrósii Epíscopi." source:
la: "Ex libro Officiorum S. Ambrósii Epíscopi."
en: "From the book On the Duties of the Clergy of St. Ambrose, Bishop"
text: text:
la: | la: |
Ex libro Officiorum S. Ambrósii Epíscopi. Lib. 1., cap. 41., in medio. Non prætereamus sanctum Laurentium, qui cum videret episcopum suum ad martyrium duci, flere cœpit non passionem illius, sed suam remansionem. Itaque his verbis appellare cœpit: Quo progrederis sine filio pater? quo sacerdos sancte sine diacono properas? Numquam sacrificium sine ministro offerre consueveras. Quid in me ergo displicuit pater? Num degenerem me probasti? Experire certe utrum idoneum ministrum elegeris. Cui commisisti Dominici sanguinis dispensationem, cui consumandorum consortium sacramentorum huic consortium tui sanguinis negas? Ex libro Officiorum S. Ambrósii Epíscopi. Lib. 1., cap. 41., in medio. Non prætereamus sanctum Laurentium, qui cum videret episcopum suum ad martyrium duci, flere cœpit non passionem illius, sed suam remansionem. Itaque his verbis appellare cœpit: Quo progrederis sine filio pater? quo sacerdos sancte sine diacono properas? Numquam sacrificium sine ministro offerre consueveras. Quid in me ergo displicuit pater? Num degenerem me probasti? Experire certe utrum idoneum ministrum elegeris. Cui commisisti Dominici sanguinis dispensationem, cui consumandorum consortium sacramentorum huic consortium tui sanguinis negas?
@@ -7,7 +7,9 @@
# marks entirely in places) -- not corrected here, since guessing where they # marks entirely in places) -- not corrected here, since guessing where they
# belong isn't the same class of fix as an isolated single-character typo. # belong isn't the same class of fix as an isolated single-character typo.
id: st-lawrence-octave-day-5 id: st-lawrence-octave-day-5
source: "Sermo sancti Maximi Epíscopi" source:
la: "Sermo sancti Maximi Epíscopi"
en: "Sermon of St. Maximus, Bishop"
text: text:
la: | la: |
Sermo sancti Maximi Epíscopi Homilia 1 de S. Laurentio Sanctum est, fratres, ac Deo placitum, ut natalem beati Laurentii præcipua devotione veneremur: cujus radiantibus flammis victrix in hunc quoque diem toto orbe Christi coruscat Ecclesia. Qui cum in sede gloriosissimi Patriarchæ diaconatus fungeretur officio, puritate innocentis vitæ, fortissimæque mortis triumpho, apostolico se consortio copulavit. Nec immerito eum Apostolorum supparem prædicamus, cui et castitas animi leviticum ministerium dedit, et plenitudo fidei martyrii contulit dignitatem. Sermo sancti Maximi Epíscopi Homilia 1 de S. Laurentio Sanctum est, fratres, ac Deo placitum, ut natalem beati Laurentii præcipua devotione veneremur: cujus radiantibus flammis victrix in hunc quoque diem toto orbe Christi coruscat Ecclesia. Qui cum in sede gloriosissimi Patriarchæ diaconatus fungeretur officio, puritate innocentis vitæ, fortissimæque mortis triumpho, apostolico se consortio copulavit. Nec immerito eum Apostolorum supparem prædicamus, cui et castitas animi leviticum ministerium dedit, et plenitudo fidei martyrii contulit dignitatem.
@@ -12,7 +12,9 @@
# marks entirely in places) -- not corrected here, since guessing where they # marks entirely in places) -- not corrected here, since guessing where they
# belong isn't the same class of fix as an isolated single-character typo. # belong isn't the same class of fix as an isolated single-character typo.
id: st-lawrence-octave-day-8 id: st-lawrence-octave-day-8
source: "De libro Ecclesiástici" source:
la: "De libro Ecclesiástici"
en: "From the Book of Ecclesiasticus"
text: text:
la: | la: |
De libro Ecclesiástici Sir 51:1-3 1 Confitébor tibi, Dómine, Rex, et collaudábo te Deum Salvatórem meum. 2 Confitébor nómini tuo: quóniam adjútor et protéctor factus es mihi, 3 Et liberásti corpus meum a perditióne, a láqueo linguæ iníquæ et a lábiis operántium mendácium, et in conspéctu astántium factus es mihi adjútor. De libro Ecclesiástici Sir 51:1-3 1 Confitébor tibi, Dómine, Rex, et collaudábo te Deum Salvatórem meum. 2 Confitébor nómini tuo: quóniam adjútor et protéctor factus es mihi, 3 Et liberásti corpus meum a perditióne, a láqueo linguæ iníquæ et a lábiis operántium mendácium, et in conspéctu astántium factus es mihi adjútor.
+8 -2
View File
@@ -232,7 +232,13 @@ export type ResolvedPart =
// groups a reading under its 'nocturn-psalmody' sibling for the UI (1-3, // groups a reading under its 'nocturn-psalmody' sibling for the UI (1-3,
// omitted on a ferial 1-nocturn day); `source` is a human-readable // omitted on a ferial 1-nocturn day); `source` is a human-readable
// attribution ("St. John Chrysostom, Homily 3 on Matthew"; the user's // attribution ("St. John Chrysostom, Homily 3 on Matthew"; the user's
// own bible-reading plan doesn't carry one). `isGospel` flags a reading // own bible-reading plan doesn't carry one). `label` is usually that same
// plain string (nocturn-readings' own `source`, already written once in
// English and reused as-is in both language columns), but octave
// readings' own `source` is a genuine bilingual attribution (their
// English title is a real translation of a Latin incipit, not an
// editorial description written once) so `label` accepts either shape —
// see hour-view.ts's renderLessonLabel. `isGospel` flags a reading
// as a Gospel pericope (from either the user's own continuous-reading // as a Gospel pericope (from either the user's own continuous-reading
// plan or the day's own proper Gospel+homily — never a Common-of-Saints // plan or the day's own proper Gospel+homily — never a Common-of-Saints
// fallback Gospel, which this app deliberately excludes for Matins, see // fallback Gospel, which this app deliberately excludes for Matins, see
@@ -245,7 +251,7 @@ export type ResolvedPart =
| { | {
kind: 'lesson'; kind: 'lesson';
text: ResolvedText; text: ResolvedText;
label?: string; label?: string | Partial<Record<string, string>>;
nocturn?: number; nocturn?: number;
source?: string; source?: string;
isGospel?: boolean; isGospel?: boolean;
+6 -4
View File
@@ -21,9 +21,11 @@ export interface ScriptureCitation {
export interface OctaveReadingText { export interface OctaveReadingText {
id: string; id: string;
/** Attribution for the reading — author and work, e.g. "St. John /** Attribution for the reading — author and work, e.g. "St. John
* Damascene, 2nd Sermon on the Dormition of the Mother of God". Not * Damascene, 2nd Sermon on the Dormition of the Mother of God". Bilingual
* itself translated/localized. */ * like everything else here since it's rendered as the reading's own
source: string; * heading in both language columns (2026-08-21 fix: it used to be a bare
* Latin incipit shown verbatim in the English column too). */
source: Partial<Record<LanguageCode, string>>;
text: Partial<Record<LanguageCode, string>>; text: Partial<Record<LanguageCode, string>>;
/** The first responsory following the reading in the source, where one /** The first responsory following the reading in the source, where one
* was found — which one to use when several lessons (and several * was found — which one to use when several lessons (and several
@@ -51,7 +53,7 @@ export interface OctaveReadingText {
*/ */
interface OctaveReadingRecord { interface OctaveReadingRecord {
id: string; id: string;
source: string; source: Partial<Record<LanguageCode, string>>;
text?: Partial<Record<LanguageCode, string>>; text?: Partial<Record<LanguageCode, string>>;
passages?: ScriptureCitation[]; passages?: ScriptureCitation[];
responsory?: Partial<Record<LanguageCode, string>>; responsory?: Partial<Record<LanguageCode, string>>;
+22 -1
View File
@@ -34,6 +34,27 @@ function renderCitation(text: ResolvedText): string {
return values.length ? `<p class="ordo-part-citation">${escapeHtml(values.join(' / '))}</p>` : ''; return values.length ? `<p class="ordo-part-citation">${escapeHtml(values.join(' / '))}</p>` : '';
} }
// A lesson's `label` is either a plain string (an editorial attribution
// written once and reused in both language columns) or a per-language
// object (a genuine translation, e.g. an octave reading's Latin incipit
// vs. its English title) — render the latter as its own lang-columns row
// matching the body text underneath it.
function renderLessonLabel(
label: string | Partial<Record<string, string>> | undefined,
languages: readonly string[],
): string {
if (!label) {
return '<h3 class="ordo-part-label">Reading</h3>';
}
if (typeof label === 'string') {
return `<h3 class="ordo-part-label">${escapeHtml(label)}</h3>`;
}
const cols = languages
.map((lang) => `<span class="lang-column" lang="${lang}">${escapeHtml(label[lang] ?? '')}</span>`)
.join('');
return `<h3 class="ordo-part-label lang-columns lang-columns-${languages.length}">${cols}</h3>`;
}
function renderPart(part: ResolvedPart, languages: readonly string[]): string { function renderPart(part: ResolvedPart, languages: readonly string[]): string {
switch (part.kind) { switch (part.kind) {
case 'hymn': case 'hymn':
@@ -70,7 +91,7 @@ function renderPart(part: ResolvedPart, languages: readonly string[]): string {
case 'lesson': case 'lesson':
return ` return `
<section class="ordo-part ordo-part-lesson${part.isGospel ? ' ordo-part-lesson-gospel' : ''}"> <section class="ordo-part ordo-part-lesson${part.isGospel ? ' ordo-part-lesson-gospel' : ''}">
<h3 class="ordo-part-label">${part.isGospel ? 'Gospel' : part.label ? escapeHtml(part.label) : 'Reading'}</h3> ${part.isGospel ? '<h3 class="ordo-part-label">Gospel</h3>' : renderLessonLabel(part.label, languages)}
${renderCitation(part.text)} ${renderCitation(part.text)}
${renderColumns(part.text, languages)} ${renderColumns(part.text, languages)}
${part.responsory ? `<div class="ordo-part-responsory">${renderColumns(part.responsory, languages)}</div>` : ''} ${part.responsory ? `<div class="ordo-part-responsory">${renderColumns(part.responsory, languages)}</div>` : ''}
+3 -1
View File
@@ -90,7 +90,9 @@ describe('resolveOrdo("prime", ...)', () => {
it('resolves a Regula reading for the day, via the canonical-date table', () => { it('resolves a Regula reading for the day, via the canonical-date table', () => {
const ordo = resolveOrdo('prime', '2026-08-25'); const ordo = resolveOrdo('prime', '2026-08-25');
// 08-25 maps to canonical 04-25 (Rule ch. 67) in data/regula/table.yml. // 08-25 maps to canonical 04-25 (Rule ch. 67) in data/regula/table.yml.
const rule = ordo.parts.find((p) => p.kind === 'lesson' && p.label?.includes('67')); const rule = ordo.parts.find(
(p) => p.kind === 'lesson' && typeof p.label === 'string' && p.label.includes('67'),
);
expect(rule).toBeDefined(); expect(rule).toBeDefined();
}); });
+2 -1
View File
@@ -4,7 +4,8 @@ import { getOctaveReading } from '../../src/propers';
describe('getOctaveReading', () => { describe('getOctaveReading', () => {
it('resolves a real reading for a day that has one, collapsed into one continuous text', () => { it('resolves a real reading for a day that has one, collapsed into one continuous text', () => {
const reading = getOctaveReading('st-lawrence', 2); const reading = getOctaveReading('st-lawrence', 2);
expect(reading?.source).toBe('Sermo sancti Augustíni Epíscopi.'); expect(reading?.source.la).toBe('Sermo sancti Augustíni Epíscopi.');
expect(reading?.source.en).toBe('Sermon of St. Augustine, Bishop');
expect(reading?.text.la).toContain('Beatissimi Laurentii Martyris'); expect(reading?.text.la).toContain('Beatissimi Laurentii Martyris');
expect(reading?.text.en).toContain('most blessed Martyr, Lawrence'); expect(reading?.text.en).toContain('most blessed Martyr, Lawrence');
expect(reading?.status.la).toBe('verified'); expect(reading?.status.la).toBe('verified');