prayers: add plenary indulgence explanation to postcommunio
All checks were successful
CI / update (push) Successful in 1m29s

This commit is contained in:
2026-02-13 15:34:20 +01:00
parent 601e2f6513
commit 0e0af55ce7
7 changed files with 199 additions and 31 deletions

View File

@@ -1,6 +1,8 @@
<script>
import Prayer from './Prayer.svelte';
import AveMaria from './AveMaria.svelte';
let { verbose = false } = $props();
</script>
<Prayer>
@@ -16,7 +18,11 @@
{/snippet}
</Prayer>
{#if verbose}
<AveMaria />
{:else}
<p class="ave-indicator"><i>— Ave Maria —</i></p>
{/if}
<Prayer>
{#snippet children(showLatin, urlLang)}
@@ -31,7 +37,11 @@
{/snippet}
</Prayer>
{#if verbose}
<AveMaria />
{:else}
<p class="ave-indicator"><i>— Ave Maria —</i></p>
{/if}
<Prayer>
{#snippet children(showLatin, urlLang)}
@@ -46,7 +56,11 @@
{/snippet}
</Prayer>
{#if verbose}
<AveMaria />
{:else}
<p class="ave-indicator"><i>— Ave Maria —</i></p>
{/if}
<Prayer>
{#snippet children(showLatin, urlLang)}
@@ -84,3 +98,11 @@
</p>
{/snippet}
</Prayer>
<style>
.ave-indicator {
text-align: center;
color: grey;
margin: 0.5em 0;
}
</style>

View File

@@ -0,0 +1,53 @@
<script>
import Prayer from './Prayer.svelte';
import Paternoster from './Paternoster.svelte';
import AveMaria from './AveMaria.svelte';
import GloriaPatri from './GloriaPatri.svelte';
</script>
<Prayer>
{#snippet children(showLatin, urlLang)}
<p>
{#if showLatin}<v lang=la>Ánima Christi, santífica me.</v>{/if}
{#if urlLang=='de'}<v lang=de>Seele Christi, heilige mich.</v>{/if}
{#if urlLang=='en'}<v lang=en>Soul of Christ, sanctify me.</v>{/if}
{#if showLatin}<v lang=la>Corpus Christi, salva me.</v>{/if}
{#if urlLang=='de'}<v lang=de>Leib Christi, erlöse mich.</v>{/if}
{#if urlLang=='en'}<v lang=en>Body of Christ, save me.</v>{/if}
{#if showLatin}<v lang=la>Sanguis Christi, inébria me.</v>{/if}
{#if urlLang=='de'}<v lang=de>Blut Christi, tränke mich.</v>{/if}
{#if urlLang=='en'}<v lang=en>Blood of Christ, inebriate me.</v>{/if}
{#if showLatin}<v lang=la>Aqua láteris Christi, lava me.</v>{/if}
{#if urlLang=='de'}<v lang=de>Wasser der Seite Christi, wasche mich.</v>{/if}
{#if urlLang=='en'}<v lang=en>Water from the side of Christ, wash me.</v>{/if}
{#if showLatin}<v lang=la>Pássio Christi, confórta me.</v>{/if}
{#if urlLang=='de'}<v lang=de>Leiden Christi, stärke mich.</v>{/if}
{#if urlLang=='en'}<v lang=en>Passion of Christ, strenghten me.</v>{/if}
{#if showLatin}<v lang=la>O bone Iesu, exáudi me.</v>{/if}
{#if urlLang=='de'}<v lang=de>O gütiger Jesus, erhöre mich.</v>{/if}
{#if urlLang=='en'}<v lang=en>O good Jesus, hear me.</v>{/if}
{#if showLatin}<v lang=la>Intra tua vúlnera abscónde me.</v>{/if}
{#if urlLang=='de'}<v lang=de>Verbirg in Deine Wunden mich.</v>{/if}
{#if urlLang=='en'}<v lang=en>Within Thy wounds hide me.</v>{/if}
{#if showLatin}<v lang=la>Ne permíttas me separári a te.</v>{/if}
{#if urlLang=='de'}<v lang=de>Von Dir lass nimmer scheiden mich.</v>{/if}
{#if urlLang=='en'}<v lang=en>Separated from Thee let me never be.</v>{/if}
{#if showLatin}<v lang=la>Ab hoste malígno defénde me.</v>{/if}
{#if urlLang=='de'}<v lang=de>Vor dem bösen Feind beschütze mich.</v>{/if}
{#if urlLang=='en'}<v lang=en>From the malignant enemeny, defend me.</v>{/if}
{#if showLatin}<v lang=la>In hora mortis meæ voca me.</v>{/if}
{#if urlLang=='de'}<v lang=de>In meiner Todesstunde rufe mich,</v>{/if}
{#if urlLang=='en'}<v lang=en>At the hour of death, call me.</v>{/if}
{#if showLatin}<v lang=la>Et iube me veníre ad te,</v>{/if}
{#if urlLang=='de'}<v lang=de>Und heisse zur Dir kommen mich,</v>{/if}
{#if urlLang=='en'}<v lang=en>And bid me come unto Thee</v>{/if}
{#if showLatin}<v lang=la>Ut cum Sanctis tuis laudem te</v>{/if}
{#if urlLang=='de'}<v lang=de>Damit ich möge loben Dich</v>{/if}
{#if urlLang=='en'}<v lang=en>That with Thy Saints I may praise Thee</v>{/if}
{#if showLatin}<v lang=la>in sǽcula sæculórum.</v>{/if}
{#if urlLang=='de'}<v lang=de>Mit Deinen Heiligen ewiglich.</v>{/if}
{#if urlLang=='en'}<v lang=en>forever and ever.</v>{/if}
<v lang=und>Amen.</v>
</p>
{/snippet}
</Prayer>

View File

@@ -1,7 +1,20 @@
<script>
import Prayer from './Prayer.svelte';
let { intro = false } = $props();
</script>
{#if intro}
<Prayer hasLatin={false}>
{#snippet children(showLatin, urlLang)}
<p class="intro">
{#if urlLang === 'en'}This ancient hymn begins with the words the angels used to celebrate the newborn Savior. It first praises God the Father, then God the Son; it concludes with homage to the Most Holy Trinity, during which one makes the sign of the cross.{/if}
{#if urlLang === 'de'}Der uralte Gesang beginnt mit den Worten, mit denen die Engelscharen den neugeborenen Welterlöser feierten. Er preist zunächst Gott Vater, dann Gott Sohn; er schliesst mit einer Huldigung an die Heiligste Dreifaltigkeit, wobei man sich mit dem grossen Kreuze bezeichnet.{/if}
</p>
{/snippet}
</Prayer>
{/if}
<Prayer>
{#snippet children(showLatin, urlLang)}
<p>

View File

@@ -0,0 +1,41 @@
<script>
import Prayer from './Prayer.svelte';
import Paternoster from './Paternoster.svelte';
import AveMaria from './AveMaria.svelte';
import GloriaPatri from './GloriaPatri.svelte';
import AnimaChristi from './AnimaChristi.svelte';
import PrayerBeforeACrucifix from './PrayerBeforeACrucifix.svelte';
let {onlyIntro = false } = $props();
</script>
<Prayer hasLatin={false}>
{#snippet children(showLatin, urlLang)}
<p class="intro">
{#if urlLang === 'en'}A plenary indulgence is granted to the faithful who devoutly recite these prayers after Holy Communion. The usual conditions apply: sacramental confession, Eucharistic communion, prayer for the intentions of the Holy Father, and detachment from all sin, even venial.{/if}
{#if urlLang === 'de'}Den Gläubigen, die diese Gebete nach der heiligen Kommunion andächtig verrichten, wird ein vollkommener Ablass gewährt. Die üblichen Bedingungen gelten: sakramentale Beichte, eucharistische Kommunion, Gebet in den Anliegen des Heiligen Vaters und Loslösung von jeder Sünde, auch von lässlichen.{/if}
</p>
{/snippet}
</Prayer>
{#if !onlyIntro}
<Prayer>
{#snippet children(showLatin, urlLang)}
<h3> Ánima Christi </h3>
<AnimaChristi />
<h3>
{#if urlLang=='en'}Plenary Indulgence{:else}Vollkommener Ablass{/if}
</h3>
<h3>
{#if urlLang=='en'}Prayer Before a Crucifix{:else}Gebet vor einem Kruzifix{/if}
</h3>
<h4> Paternoster </h4>
<Paternoster />
<h4> Ave Maria </h4>
<AveMaria />
<h4> Gloria Patri </h4>
<GloriaPatri />
<PrayerBeforeACrucifix />
{/snippet}
</Prayer>
{/if}

View File

@@ -0,0 +1,38 @@
<script>
import Prayer from './Prayer.svelte';
import Paternoster from './Paternoster.svelte';
import AveMaria from './AveMaria.svelte';
import GloriaPatri from './GloriaPatri.svelte';
</script>
<Prayer>
{#snippet children(showLatin, urlLang)}
<p>
{#if showLatin}<v lang=la>En ego, o bone et dulcíssime Jesu,</v>{/if}
{#if urlLang=='de'}<v lang=de>Siehe, o gütiger und milder Jesus,</v>{/if}
{#if urlLang=='en'}<v lang=en>Behold, O good and sweetest Jesus,</v>{/if}
{#if showLatin}<v lang=la>ante conspéctum tuum génibus me provólvo </v>{/if}
{#if urlLang=='de'}<v lang=de>ich werfe mich vor Deinen Augen auf die Knie. </v>{/if}
{#if urlLang=='en'}<v lang=en>I cast myself upon my knees in Thy sight,</v>{/if}
{#if showLatin}<v lang=la>ac máximo ánimi ardóre te oro atque obtéstor, </v>{/if}
{#if urlLang=='de'}<v lang=de>Inbrünstig bitte und beschwöre ich Dich:</v>{/if}
{#if urlLang=='en'}<v lang=en>and with the most fervent desire of my soul I pray and beseech Thee</v>{/if}
{#if showLatin}<v lang=la> ut meum in in cor vívidos fídei, spei et caritátis sensus, atque veram peccatórum meórum pœniténtiam,</v>{/if}
{#if urlLang=='de'}<v lang=de>Präge meinem Herzen lebendige Gefühle des Glaubens, der Hoffung und der Liebe ein</v>{/if}
{#if urlLang=='en'}<v lang=en>to impress upon my heart lively sentiments of faith, hope and charity,</v>{/if}
{#if showLatin} <v lang=la>éaque emendándi firmíssimam voluntátem velis</v>{/if}
{#if urlLang=='de'}<v lang=de>sowie wahre Reue über meine Sünden und den ganz festen Willen, mich zu bessern.</v>{/if}
{#if urlLang=='en'}<v lang=en>with true repentance for my sins and a most firm desire of amendment:</v>{/if}
{#if showLatin} <v lang=la> imprímere; dum magno ánimi afféctu et dolóre tua quinque vúlnera mecum ipse consídero ac mente contémplor,</v>{/if}
{#if urlLang=='de'}<v lang=de>Voll Liebe und Schmerz schaue ich Deine fünf Wunden und betrachte sie in meinem Geiste.</v>{/if}
{#if urlLang=='en'}<v lang=en>whilst with deep affection and grief of soul I consider within myself and mentally contemplate Thy five most precious Wounds,</v>{/if}
{#if showLatin}<v lang=la>illud præ óculis habens, quod jam in ore ponébat tuo David Prophéta de te, o bone Jesu:</v>{/if}
{#if urlLang=='de'}<v lang=de>Dabei halte ich mir vor Augen, was im Hinblick auf Dich, o guter Jesus, schon der Prophet David Dir in den Mund legte:</v>{/if}
{#if urlLang=='en'}<v lang=en>having before mine eyes that which David, the prophet, long ago spoke in Thine Own person concerning Thee, my Jesus:</v>{/if}
{#if showLatin}<v lang=la> «Fodérunt manus meas et pedes meos; dinumeravérunt ómnio ossa mea.» (Ps. 21, 17-18)</v>{/if}
{#if urlLang=='de'}<v lang=de>«Sie haben Meine Hände und Meine Füsse durchbohrt; alle meine Gebeine haben sie gezählt.» (Ps. 21, 17-18)</v>{/if}
{#if urlLang=='en'}<v lang=en>"They have pierced My hands and My feet, they have numbered all My bones." (Ps. 21:17-18</v>{/if}
<v lang=und>Amen.</v>
</p>
{/snippet}
</Prayer>

View File

@@ -24,6 +24,9 @@
import TantumErgo from "$lib/components/faith/prayers/TantumErgo.svelte";
import Angelus from "$lib/components/faith/prayers/Angelus.svelte";
import ReginaCaeli from "$lib/components/faith/prayers/ReginaCaeli.svelte";
import AnimaChristi from "$lib/components/faith/prayers/AnimaChristi.svelte";
import PrayerBeforeACrucifix from "$lib/components/faith/prayers/PrayerBeforeACrucifix.svelte";
import Postcommunio from "$lib/components/faith/prayers/Postcommunio.svelte";
import Prayer from "$lib/components/faith/prayers/Prayer.svelte";
import { isEastertide as checkEastertide } from "$lib/js/easter.svelte";
@@ -53,9 +56,6 @@
salveRegina: 'Salve Regina',
fatima: isEnglish ? 'Fatima Prayer' : 'Das Fatimagebet',
gloria: 'Glória',
gloriaIntro: isEnglish
? 'This ancient hymn begins with the words the angels used to celebrate the newborn Savior. It first praises God the Father, then God the Son; it concludes with homage to the Most Holy Trinity, during which one makes the sign of the cross.'
: 'Der uralte Gesang beginnt mit den Worten, mit denen die Engelscharen den neugeborenen Welterlöser feierten. Er preist zunächst Gott Vater, dann Gott Sohn; er schliesst mit einer Huldigung an die Heiligste Dreifaltigkeit, wobei man sich mit dem grossen Kreuze bezeichnet.',
michael: isEnglish ? 'Prayer to St. Michael the Archangel' : 'Gebet zum hl. Erzengel Michael',
bruderKlaus: isEnglish ? 'Prayer of St. Nicholas of Flüe' : 'Bruder Klaus Gebet',
joseph: isEnglish ? 'Prayer to St. Joseph by Pope St. Pius X' : 'Josephgebet des hl. Papst Pius X',
@@ -103,6 +103,9 @@
tantumErgo: ['eucharistic', 'praise'],
angelus: ['marian'],
reginaCaeli: ['marian'],
animachristi: ['eucharistic'],
prayerbeforeacrucifix: ['eucharistic', 'penitential'],
postcommunio: ['eucharistic'],
};
let selectedCategory = $state(data.initialCategory);
@@ -154,7 +157,10 @@
{ id: 'apostlesCreed', searchTerms: ['apostolisches glaubensbekenntnis', "apostles' creed", 'symbolum apostolorum', 'ich glaube an gott'], slug: isEnglish ? 'apostles-creed' : 'apostolisches-glaubensbekenntnis' },
{ id: 'tantumErgo', searchTerms: ['tantum ergo', 'genitori', 'sakrament', 'sacrament'], slug: 'tantum-ergo' },
{ id: 'angelus', searchTerms: ['angelus', 'engel des herrn', 'angel of the lord'], slug: 'angelus' },
{ id: 'reginaCaeli', searchTerms: ['regina caeli', 'regina coeli', 'himmelskönigin', 'queen of heaven'], slug: 'regina-caeli' }
{ id: 'reginaCaeli', searchTerms: ['regina caeli', 'regina coeli', 'himmelskönigin', 'queen of heaven'], slug: 'regina-caeli' },
{ id: 'animachristi', searchTerms: ['anima christi', 'seele christi', 'soul of christ'], slug: 'anima-christi' },
{ id: 'prayerbeforeacrucifix', searchTerms: ['kruzifix', 'crucifix', 'kreuz', 'cross', 'en ego'], slug: isEnglish ? 'prayer-before-a-crucifix' : 'gebet-vor-einem-kruzifix' },
{ id: 'postcommunio', searchTerms: ['postcommunio', 'nachkommunion', 'kommunion', 'communion'], slug: 'postcommunio' }
]);
// Base URL for prayer links
@@ -179,7 +185,10 @@
apostlesCreed: labels.apostlesCreed,
tantumErgo: labels.tantumErgo,
angelus: labels.angelus,
reginaCaeli: labels.reginaCaeli
reginaCaeli: labels.reginaCaeli,
animachristi: labels.animachristi,
prayerbeforeacrucifix: labels.prayerbeforeacrucifix,
postcommunio: labels.postcommunio
};
return nameMap[id] || id;
}
@@ -274,8 +283,6 @@
});
});
const showPostcommunio = $derived(!selectedCategory || selectedCategory === 'eucharistic');
// Prayer metadata (bilingue status)
const prayerMeta = {
signOfCross: { bilingue: true },
@@ -294,7 +301,10 @@
apostlesCreed: { bilingue: true },
tantumErgo: { bilingue: true },
angelus: { bilingue: true },
reginaCaeli: { bilingue: true }
reginaCaeli: { bilingue: true },
animachristi: { bilingue: true },
prayerbeforeacrucifix: { bilingue: true },
postcommunio: { bilingue: true }
};
const isEastertide = $derived(checkEastertide());
@@ -506,12 +516,6 @@ h1{
<div class=container>
{#each filteredPrayers as prayer (prayer.id)}
<div class="prayer-wrapper {getMatchClass(prayer.id)}" data-match-label={labels.textMatch}>
{#if prayer.id === 'gloria'}
<Gebet name={getPrayerName(prayer.id)} is_bilingue={true} id={prayer.id} href="{baseUrl}/{prayer.slug}">
<p slot="intro">{labels.gloriaIntro}</p>
<Gloria />
</Gebet>
{:else}
<Gebet name={getPrayerName(prayer.id)} is_bilingue={prayerMeta[prayer.id]?.bilingue ?? true} id={prayer.id} href="{baseUrl}/{prayer.slug}">
{#if prayer.id === 'signOfCross'}
<Kreuzzeichen />
@@ -545,25 +549,22 @@ h1{
<Angelus />
{:else if prayer.id === 'reginaCaeli'}
<ReginaCaeli />
{:else if prayer.id === 'animachristi'}
<AnimaChristi />
{:else if prayer.id === 'prayerbeforeacrucifix'}
<PrayerBeforeACrucifix />
{:else if prayer.id === 'gloria'}
<Gloria intro={true} />
{:else if prayer.id === 'postcommunio'}
<Postcommunio onlyIntro={true} />
{/if}
{#if prayer.id === 'reginaCaeli' && isEastertide}
<span class="seasonal-badge">{isEnglish ? 'Eastertide' : 'Osterzeit'}</span>
{/if}
</Gebet>
{/if}
</div>
{/each}
</div>
{#if showPostcommunio}
<section class="postcommunio-section">
<h2>{labels.postcommunio}</h2>
<ul class="postcommunio-links">
<li><a href="{baseUrl}/anima-christi">{labels.animachristi}</a></li>
<li><a href="{baseUrl}/{isEnglish ? 'prayer-before-a-crucifix' : 'gebet-vor-einem-kruzifix'}">{labels.prayerbeforeacrucifix}</a></li>
<li><a href="{baseUrl}/postcommunio">{labels.postcommunio}</a></li>
</ul>
</section>
{/if}
</div>
</div>

View File

@@ -169,7 +169,7 @@ h1 {
<div class="gebet-wrapper">
<div class="gebet" class:bilingue={isBilingue}>
{#if prayerId === 'postcommunio'}
<Postcommunio verbose={true} />
<Postcommunio onlyIntro={false} />
{:else}
<PrayerBeforeACrucifix verbose={true} />
{/if}
@@ -229,7 +229,7 @@ h1 {
{:else if prayerId === 'tantumErgo'}
<TantumErgo />
{:else if prayerId === 'angelus'}
<AngelusComponent />
<AngelusComponent verbose={true} />
{:else if prayerId === 'reginaCaeli'}
<ReginaCaeli />
{/if}