prayers: add English translations for all prayer components
Add official Catholic English translations to all prayer components for /faith/* routes. Prayer names on /faith/prayers are now displayed in English. Remove unused Angelus.svelte component.
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
import Toggle from './Toggle.svelte';
|
||||
|
||||
// Get the language context (must be created by parent page)
|
||||
const { showLatin } = getLanguageContext();
|
||||
const { showLatin, lang } = getLanguageContext();
|
||||
|
||||
// Local state for the checkbox
|
||||
let showBilingual = true;
|
||||
@@ -20,6 +20,11 @@
|
||||
localStorage.setItem('rosary_showBilingual', showBilingual.toString());
|
||||
}
|
||||
|
||||
// Dynamic label based on URL language
|
||||
$: label = $lang === 'en'
|
||||
? 'Show Latin and English'
|
||||
: 'Lateinisch und Deutsch anzeigen';
|
||||
|
||||
onMount(() => {
|
||||
// Load from localStorage
|
||||
const saved = localStorage.getItem('rosary_showBilingual');
|
||||
@@ -34,6 +39,6 @@
|
||||
|
||||
<Toggle
|
||||
bind:checked={showBilingual}
|
||||
label="Lateinisch und Deutsch anzeigen"
|
||||
{label}
|
||||
accentColor="var(--nord14)"
|
||||
/>
|
||||
|
||||
@@ -9,14 +9,25 @@ let streak = $state<ReturnType<typeof getRosaryStreak> | null>(null);
|
||||
|
||||
interface Props {
|
||||
streakData?: { length: number; lastPrayed: string | null } | null;
|
||||
lang?: 'de' | 'en';
|
||||
}
|
||||
|
||||
let { streakData = null }: Props = $props();
|
||||
let { streakData = null, lang = 'de' }: Props = $props();
|
||||
|
||||
const isEnglish = $derived(lang === 'en');
|
||||
|
||||
// Derive display values: use store when available, fall back to server data for SSR
|
||||
let displayLength = $derived(streak?.length ?? streakData?.length ?? 0);
|
||||
let prayedToday = $derived(streak?.prayedToday ?? (streakData?.lastPrayed === new Date().toISOString().split('T')[0]));
|
||||
|
||||
// Labels need to come after displayLength since they depend on it
|
||||
const labels = $derived({
|
||||
days: isEnglish ? (displayLength === 1 ? 'Day' : 'Days') : (displayLength === 1 ? 'Tag' : 'Tage'),
|
||||
prayed: isEnglish ? 'Prayed' : 'Gebetet',
|
||||
prayedToday: isEnglish ? 'Prayed today' : 'Heute gebetet',
|
||||
ariaLabel: isEnglish ? 'Mark prayer as prayed' : 'Gebet als gebetet markieren'
|
||||
});
|
||||
|
||||
// Initialize store on mount (client-side only)
|
||||
onMount(() => {
|
||||
streak = getRosaryStreak();
|
||||
@@ -34,18 +45,18 @@ async function pray() {
|
||||
<div class="streak-container">
|
||||
<div class="streak-display">
|
||||
<StreakAura value={displayLength} {burst} />
|
||||
<span class="streak-label">Tag{#if displayLength !== 1}e{/if}</span>
|
||||
<span class="streak-label">{labels.days}</span>
|
||||
</div>
|
||||
<button
|
||||
class="streak-button"
|
||||
onclick={pray}
|
||||
disabled={prayedToday}
|
||||
aria-label="Gebet als gebetet markieren"
|
||||
aria-label={labels.ariaLabel}
|
||||
>
|
||||
{#if prayedToday}
|
||||
Heute gebetet
|
||||
{labels.prayedToday}
|
||||
{:else}
|
||||
Gebetet
|
||||
{labels.prayed}
|
||||
{/if}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -1,88 +0,0 @@
|
||||
<script>
|
||||
import Prayer from './Prayer.svelte';
|
||||
import AveMaria from './AveMaria.svelte';
|
||||
</script>
|
||||
|
||||
<Prayer>
|
||||
<!-- First Versicle and Response -->
|
||||
<p>
|
||||
<v lang="la"><i>℣.</i> Angelus Domini nuntiavit Mariae.</v>
|
||||
<v lang="de"><i>℣.</i> Der Engel des Herrn brachte Maria die Botschaft</v>
|
||||
<v lang="en"><i>℣.</i> The Angel of the Lord declared unto Mary.</v>
|
||||
<v lang="la"><i>℟.</i> Et concepit de Spiritu Sancto.</v>
|
||||
<v lang="de"><i>℟.</i> und sie empfing vom Heiligen Geist.</v>
|
||||
<v lang="en"><i>℟.</i> And she conceived of the Holy Spirit.</v>
|
||||
</p>
|
||||
</Prayer>
|
||||
|
||||
<!-- First Hail Mary -->
|
||||
<AveMaria />
|
||||
|
||||
<Prayer>
|
||||
<!-- Second Versicle and Response -->
|
||||
<p>
|
||||
<v lang="la"><i>℣.</i> Ecce ancilla Domini,</v>
|
||||
<v lang="de"><i>℣.</i> Maria sprach: Siehe, ich bin die Magd des Herrn</v>
|
||||
<v lang="en"><i>℣.</i> Behold the handmaid of the Lord.</v>
|
||||
<v lang="la"><i>℟.</i> Fiat mihi secundum verbum tuum.</v>
|
||||
<v lang="de"><i>℟.</i> mir geschehe nach Deinem Wort.</v>
|
||||
<v lang="en"><i>℟.</i> Be it done unto me according to thy word.</v>
|
||||
</p>
|
||||
</Prayer>
|
||||
|
||||
<!-- Second Hail Mary -->
|
||||
<AveMaria />
|
||||
|
||||
<Prayer>
|
||||
<!-- Third Versicle and Response -->
|
||||
<p>
|
||||
<v lang="la"><i>℣.</i> Et Verbum caro factum est,</v>
|
||||
<v lang="de"><i>℣.</i> Und das Wort ist Fleisch geworden</v>
|
||||
<v lang="en"><i>℣.</i> And the Word was made flesh.</v>
|
||||
<v lang="la"><i>℟.</i> Et habitavit in nobis.</v>
|
||||
<v lang="de"><i>℟.</i> und hat unter uns gewohnt.</v>
|
||||
<v lang="en"><i>℟.</i> And dwelt among us.</v>
|
||||
</p>
|
||||
</Prayer>
|
||||
|
||||
<!-- Third Hail Mary -->
|
||||
<AveMaria />
|
||||
|
||||
<Prayer>
|
||||
<!-- Fourth Versicle and Response -->
|
||||
<p>
|
||||
<v lang="la"><i>℣.</i> Ora pro nobis, sancta Dei Genetrix,</v>
|
||||
<v lang="de"><i>℣.</i> Bitte für uns Heilige Gottesmutter</v>
|
||||
<v lang="en"><i>℣.</i> Pray for us, O holy Mother of God.</v>
|
||||
<v lang="la"><i>℟.</i> Ut digni efficiamur promissionibus Christi.</v>
|
||||
<v lang="de"><i>℟.</i> auf dass wir würdig werden der Verheißungen Christi.</v>
|
||||
<v lang="en"><i>℟.</i> That we may be made worthy of the promises of Christ.</v>
|
||||
</p>
|
||||
|
||||
<!-- Closing Prayer -->
|
||||
<p>
|
||||
<v lang="la"><i>℣.</i> Oremus.</v>
|
||||
<v lang="de"><i>℣.</i> Lasset uns beten.</v>
|
||||
<v lang="en"><i>℣.</i> Let us pray:</v>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<v lang="la">
|
||||
Gratiam tuam, quaesumus, Domine, mentibus nostris infunde; ut qui, Angelo nuntiante,
|
||||
Christi Filii tui incarnationem cognovimus, per passionem eius et crucem ad
|
||||
resurrectionis gloriam perducamur. Per eumdem Christum Dominum nostrum. Amen.
|
||||
</v>
|
||||
<v lang="de">
|
||||
Allmächtiger Gott, gieße deine Gnade in unsere Herzen ein. Durch die Botschaft des
|
||||
Engels haben wir die Menschwerdung Christi, deines Sohnes, erkannt. Lass uns durch
|
||||
sein Leiden und Kreuz zur Herrlichkeit der Auferstehung gelangen. Darum bitten wir
|
||||
durch Christus, unseren Herrn. Amen.
|
||||
</v>
|
||||
<v lang="en">
|
||||
Pour forth, we beseech Thee, O Lord, Thy grace into our hearts, that we to whom the
|
||||
Incarnation of Christ Thy Son was made known by the message of an angel, may by His
|
||||
Passion and Cross be brought to the glory of His Resurrection. Through the same Christ
|
||||
Our Lord. Amen.
|
||||
</v>
|
||||
</p>
|
||||
</Prayer>
|
||||
@@ -1,29 +1,36 @@
|
||||
<script lang="ts">
|
||||
import Prayer from './Prayer.svelte';
|
||||
|
||||
let { mystery = "", mysteryLatin = "" } = $props<{ mystery?: string, mysteryLatin?: string }>();
|
||||
let { mystery = "", mysteryLatin = "", mysteryEnglish = "" } = $props<{ mystery?: string, mysteryLatin?: string, mysteryEnglish?: string }>();
|
||||
</script>
|
||||
|
||||
<Prayer>
|
||||
<p>
|
||||
<v lang="la">Ave <i><sup>⚬</sup></i>María, grátia plena. Dóminus tecum,</v>
|
||||
<v lang="de">Gegrüsset seist du <i><sup>⚬</sup></i>Maria, voll der Gnade; der Herr ist mit dir;</v>
|
||||
<v lang="en">Hail <i><sup>⚬</sup></i>Mary, full of grace. The Lord is with thee.</v>
|
||||
<v lang="la">benedícta tu in muliéribus,</v>
|
||||
<v lang="de">du bist gebenedeit unter den Frauen,</v>
|
||||
<v lang="en">Blessed art thou amongst women,</v>
|
||||
<v lang="la">et benedíctus fructus ventris tui, {#if !mysteryLatin}<i><sup>⚬</sup></i>Jesus.{/if}</v>
|
||||
<v lang="de">und gebenedeit ist die Frucht deines Leibes, {#if !mystery}<i><sup>⚬</sup></i>Jesus.{/if}</v>
|
||||
<v lang="en">and blessed is the fruit of thy womb, {#if !mysteryEnglish}<i><sup>⚬</sup></i>Jesus.{/if}</v>
|
||||
{#if mysteryLatin}
|
||||
<v lang="la" class="mystery-text"><i><sup>⚬</sup></i>{mysteryLatin}</v>
|
||||
{/if}
|
||||
{#if mystery}
|
||||
<v lang="de" class="mystery-text"><i><sup>⚬</sup></i>{mystery}</v>
|
||||
|
||||
{/if}
|
||||
{#if mysteryEnglish}
|
||||
<v lang="en" class="mystery-text"><i><sup>⚬</sup></i>{mysteryEnglish}</v>
|
||||
{/if}
|
||||
</p>
|
||||
<p>
|
||||
<v lang="la">Sancta <i><sup>⚬</sup></i>María, mater Dei, ora pro nobis peccatóribus,</v>
|
||||
<v lang="de">Heilige <i><sup>⚬</sup></i>Maria, Mutter Gottes, bitte für uns Sünder</v>
|
||||
<v lang="en">Holy <i><sup>⚬</sup></i>Mary, Mother of God, pray for us sinners,</v>
|
||||
<v lang="la">nunc, et in hora mortis nostræ. Amen.</v>
|
||||
<v lang="de">jetzt und in der Stunde unseres Todes. Amen.</v>
|
||||
<v lang="en">now and at the hour of our death. Amen.</v>
|
||||
</p>
|
||||
</Prayer>
|
||||
|
||||
@@ -1,15 +1,24 @@
|
||||
<p>
|
||||
<v lang="de">Mein Herr und mein Gott,</v>
|
||||
<v lang="en">My Lord and my God,</v>
|
||||
<v lang="de">nimm alles von mir,</v>
|
||||
<v lang="en">take from me everything</v>
|
||||
<v lang="de">was mich hindert zu Dir.</v>
|
||||
<v lang="en">that distances me from Thee.</v>
|
||||
</p>
|
||||
<p>
|
||||
<v lang="de">Mein Herr und mein Gott,</v>
|
||||
<v lang="en">My Lord and my God,</v>
|
||||
<v lang="de">gib alles mir,</v>
|
||||
<v lang="en">give me everything</v>
|
||||
<v lang="de">was mich führet zu Dir.</v>
|
||||
<v lang="en">that brings me closer to Thee.</v>
|
||||
</p>
|
||||
<p>
|
||||
<v lang="de">Mein Herr und mein Gott,</v>
|
||||
<v lang="en">My Lord and my God,</v>
|
||||
<v lang="de">nimm mich mir</v>
|
||||
<v lang="en">detach me from myself</v>
|
||||
<v lang="de">und gib mich ganz zu eigen Dir.</v>
|
||||
<v lang="en">to give my all to Thee.</v>
|
||||
</p>
|
||||
|
||||
@@ -6,34 +6,48 @@
|
||||
<p>
|
||||
<v lang="la">Confíteor Deo omnipoténti,</v>
|
||||
<v lang="de">Ich bekenne Gott, dem Allmächtigen,</v>
|
||||
<v lang="en">I confess to almighty God,</v>
|
||||
<v lang="la">beátæ Maríæ semper Vírgini</v>
|
||||
<v lang="de">der seligen, allzeit reinen Jungfrau Maria,</v>
|
||||
<v lang="en">to blessed Mary ever Virgin,</v>
|
||||
<v lang="la">beáto Michaéli Archángelo,</v>
|
||||
<v lang="de">dem hl. Erzengel Michael,</v>
|
||||
<v lang="en">to blessed Michael the Archangel,</v>
|
||||
<v lang="la">beáto Ioánni Baptístæ,</v>
|
||||
<v lang="de">dem hl. Johannes dem Täufer,</v>
|
||||
<v lang="en">to blessed John the Baptist,</v>
|
||||
<v lang="la">sanctis Apóstolis Petro et Paulo,</v>
|
||||
<v lang="de">den hll. Aposteln Petrus und Paulus,</v>
|
||||
<v lang="en">to the holy Apostles Peter and Paul,</v>
|
||||
<v lang="la">ómnibus Sanctis, et tibi pater:</v>
|
||||
<v lang="de">allen Heiligen und dir, Vater,</v>
|
||||
<v lang="en">to all the Saints, and to you, Father,</v>
|
||||
<v lang="la">quia paccávi nimis</v>
|
||||
<v lang="de">dass ich viel gesündigt habe</v>
|
||||
<v lang="en">that I have sinned exceedingly</v>
|
||||
<v lang="la">cogitatióne, verbe et ópere:</v>
|
||||
<v lang="de">in Gedanken, Worten und Werken,</v>
|
||||
<v lang="en">in thought, word, and deed:</v>
|
||||
<v lang="la">mea culpa, mea culpa, mea máxima cupla.</v>
|
||||
<v lang="de">durch meine Schuld, durch meine Schuld, durch meine übergrosse Schuld.</v>
|
||||
<v lang="en">through my fault, through my fault, through my most grievous fault.</v>
|
||||
<v lang="la">Ideo precor beátam Maríam semper Vírginem,</v>
|
||||
<v lang="de">Darum bitte ich die selige, allzeit reine Jungfrau Maria,</v>
|
||||
<v lang="en">Therefore I beseech the blessed Mary ever Virgin,</v>
|
||||
<v lang="la">beátum Michaélem Archángelum,</v>
|
||||
<v lang="de">den hl. Erzengel Michael,</v>
|
||||
<v lang="en">blessed Michael the Archangel,</v>
|
||||
<v lang="la">beátum Ioánnem Baptístam,</v>
|
||||
<v lang="de">dem hl. Johannes den Täufer,</v>
|
||||
<v lang="en">blessed John the Baptist,</v>
|
||||
<v lang="la">sanctos Apóstolos Petrum et Paulum,</v>
|
||||
<v lang="de">die hll. Apostel Petrus und Paulus,</v>
|
||||
<v lang="en">the holy Apostles Peter and Paul,</v>
|
||||
<v lang="la">omnes Sanctos, et te pater,</v>
|
||||
<v lang="de">alle Heiligen und dich, Vater,</v>
|
||||
<v lang="en">all the Saints, and you, Father,</v>
|
||||
<v lang="la">Oráre pro me ad Dóminum Deum nostrum.</v>
|
||||
<v lang="de">für mich zu beten bei Gott unserem Herrn.</v>
|
||||
|
||||
</p>
|
||||
<v lang="en">to pray for me to the Lord our God.</v>
|
||||
</p>
|
||||
</Prayer>
|
||||
|
||||
@@ -6,86 +6,123 @@
|
||||
<p>
|
||||
<v lang="la">Credo in unum <i><sup>⚬</sup></i> Deum, Patrem omnipoténtem,</v>
|
||||
<v lang="de">Ich glaub an den einen <i><sup>⚬</sup></i> Gott. Den allmächtigen Vater,</v>
|
||||
<v lang="en">I believe in one <i><sup>⚬</sup></i> God, the Father almighty,</v>
|
||||
<v lang="la">factórem cæli et terræ,</v>
|
||||
<v lang="de">Schöpfer des Himmels und der Erde,</v>
|
||||
<v lang="en">maker of heaven and earth,</v>
|
||||
<v lang="la">visibílium ómnium et invisibílium.</v>
|
||||
<v lang="de">aller sichtbaren und unsichtbaren Dinge.</v>
|
||||
<v lang="en">of all things visible and invisible.</v>
|
||||
<v lang="la">Et in unum Dóminum <i><sup>⚬</sup></i> Jesum Christum,</v>
|
||||
<v lang="de">Und an den einen Herrn <i><sup>⚬</sup></i> Jesus Christus,</v>
|
||||
<v lang="en">And in one Lord <i><sup>⚬</sup></i> Jesus Christ,</v>
|
||||
<v lang="la">Fílium Dei unigénitum.</v>
|
||||
<v lang="de">Gottes eingeborenen Sohn.</v>
|
||||
<v lang="en">the Only Begotten Son of God,</v>
|
||||
<v lang="la">Et ex Patre natum ante ómnia sǽcula.</v>
|
||||
<v lang="de">Er ist aus dem Vater geboren vor aller Zeit.</v>
|
||||
<v lang="en">born of the Father before all ages.</v>
|
||||
<v lang="la">Deum de Deo,</v>
|
||||
<v lang="de">Gott von Gott,</v>
|
||||
<v lang="en">God from God,</v>
|
||||
<v lang="la">lumen de lúmine,</v>
|
||||
<v lang="de">Licht vom Lichte,</v>
|
||||
<v lang="en">Light from Light,</v>
|
||||
<v lang="la">Deum verum de Deo vero.</v>
|
||||
<v lang="de">wahrer Gott vom wahren Gott;</v>
|
||||
<v lang="en">true God from true God,</v>
|
||||
<v lang="la">Génitum, non factum,</v>
|
||||
<v lang="de">Gezeugt, nicht geschaffen,</v>
|
||||
<v lang="en">begotten, not made,</v>
|
||||
<v lang="la">consubstantiálem Patri:</v>
|
||||
<v lang="de">eines Wesens mit dem Vater;</v>
|
||||
<v lang="en">consubstantial with the Father;</v>
|
||||
<v lang="la">per quem ómnia facta sunt.</v>
|
||||
<v lang="de">durch Ihn ist alles geschaffen.</v>
|
||||
<v lang="en">through Him all things were made.</v>
|
||||
<v lang="la">Qui propter nos hómines</v>
|
||||
<v lang="de">Für uns Menschen</v>
|
||||
<v lang="en">For us men</v>
|
||||
<v lang="la">et propter nostram salútem</v>
|
||||
<v lang="de">und um unsres Heiles willen</v>
|
||||
<v lang="en">and for our salvation</v>
|
||||
<v lang="la">descéndit de cælis.</v>
|
||||
<v lang="de">ist Er vom Himmel herabgestiegen.</v>
|
||||
<v lang="en">He came down from heaven.</v>
|
||||
</p>
|
||||
<p>
|
||||
<v lang="la">Et incarnátus est de Spíritu Sancto</v>
|
||||
<v lang="de">Er hat Fleisch angenommen durch den Hl. Geist</v>
|
||||
<v lang="en">And by the Holy Spirit was incarnate</v>
|
||||
<v lang="la">ex <i><sup>⚬</sup></i> María Vírgine:</v>
|
||||
<v lang="de">aus <i><sup>⚬</sup></i> Maria, der Jungfrau</v>
|
||||
<v lang="en">of the Virgin <i><sup>⚬</sup></i> Mary,</v>
|
||||
<v lang="la">Et homo factus est.</v>
|
||||
<v lang="de">und ist Mensch geworden.</v>
|
||||
<v lang="en">and became man.</v>
|
||||
<v lang="la">Crucifíxus étiam pro nobis:</v>
|
||||
<v lang="de">Gekreuzigt wurde Er sogar für uns;</v>
|
||||
<v lang="en">For our sake He was crucified</v>
|
||||
<v lang="la">sub Póntio Piláto passus, et sepúltus est.</v>
|
||||
<v lang="de">unter Pontius Pilatus hat Er den Tod erlitten</v>
|
||||
<v lang="de">und ist begraben worden</v>
|
||||
<v lang="en">under Pontius Pilate, He suffered death and was buried.</v>
|
||||
</p>
|
||||
<p>
|
||||
<v lang="la">Et resurréxit tértia die,</v>
|
||||
<v lang="de">Er ist auferstanden am dritten Tage,</v>
|
||||
<v lang="en">And rose again on the third day</v>
|
||||
<v lang="la">secúndum Scriptúras.</v>
|
||||
<v lang="de">gemäss der Schrift;</v>
|
||||
<v lang="en">in accordance with the Scriptures.</v>
|
||||
<v lang="la">Et ascéndit in cáelum:</v>
|
||||
<v lang="de">Er ist aufgefahren in den Himmel</v>
|
||||
<v lang="en">He ascended into heaven</v>
|
||||
<v lang="la">sedet ad déxteram Patris.</v>
|
||||
<v lang="de">und sitzet zur Rechten des Vaters.</v>
|
||||
<v lang="en">and is seated at the right hand of the Father.</v>
|
||||
</p>
|
||||
<p>
|
||||
<v lang="la">Et íterum ventúrus est cum glória</v>
|
||||
<v lang="de">Er wird wiederkommen in Herrlichkeit,</v>
|
||||
<v lang="en">He will come again in glory</v>
|
||||
<v lang="la">judicáre vivos et mórtuos:</v>
|
||||
<v lang="de">Gericht zu halten über Lebende und Tote:</v>
|
||||
<v lang="en">to judge the living and the dead</v>
|
||||
<v lang="la">cujus regni non erit finis.</v>
|
||||
<v lang="de">und Seines Reiches wird kein Endes sein.</v>
|
||||
<v lang="en">and His kingdom will have no end.</v>
|
||||
</p>
|
||||
<p>
|
||||
<v lang="la">Et in Spíritum Sanctum,</v>
|
||||
<v lang="de">Ich glaube an den Heiligen Geist,</v>
|
||||
<v lang="en">I believe in the Holy Spirit,</v>
|
||||
<v lang="la">Dóminum et vivificántem:</v>
|
||||
<v lang="de">den Herrn und Lebensspender,</v>
|
||||
<v lang="en">the Lord, the giver of life,</v>
|
||||
<v lang="la">qui ex Patre Filióque procédit.</v>
|
||||
<v lang="de">der vom Vater und vom Sohne ausgeht.</v>
|
||||
<v lang="en">who proceeds from the Father and the Son,</v>
|
||||
<v lang="la">Qui cum Patre et Fílio simul <i><sup></sup></i> adorátur et conglorificátur:</v>
|
||||
<v lang="de">zugleich <i><sup></sup></i> angebetet und verherrlicht;</v>
|
||||
<v lang="en">who with the Father and the Son is <i><sup></sup></i> adored and glorified,</v>
|
||||
<v lang="la">qui locútus est per Prophétas.</v>
|
||||
<v lang="de">Er hat gesprochen durch die Propheten.</v>
|
||||
<v lang="en">who has spoken through the prophets.</v>
|
||||
<v lang="la">Et unam sanctam cathólicam et apostólicam Ecclésiam.</v>
|
||||
<v lang="de">Ich glaube an die eine, heilige, katholische und apostolische Kirche.</v>
|
||||
<v lang="en">I believe in one, holy, catholic and apostolic Church.</v>
|
||||
<v lang="la">Confíteor unum baptísma</v>
|
||||
<v lang="de">Ich bekenne die eine Taufe</v>
|
||||
<v lang="en">I confess one Baptism</v>
|
||||
<v lang="la">in remissiónem peccatórum.</v>
|
||||
<v lang="de">zur Vergebung der Sünden.</v>
|
||||
<v lang="en">for the forgiveness of sins</v>
|
||||
<v lang="la">Et exspécto resurrectiónem mortuórum.</v>
|
||||
<v lang="de">Ich erwarte die Auferstehung der Toten.</v>
|
||||
<v lang="en">and I look forward to the resurrection of the dead</v>
|
||||
<v lang="la"><i>♱</i> Et vitam ventúri sǽculi. Amen.</v>
|
||||
<v lang="de"><i>♱</i> Und das Leben der zukünftigen Welt. Amen.</v>
|
||||
<v lang="en"><i>♱</i> and the life of the world to come. Amen.</v>
|
||||
</p>
|
||||
</Prayer>
|
||||
|
||||
@@ -6,13 +6,18 @@
|
||||
<p>
|
||||
<v lang="la">Mí <i><sup>⚬</sup></i>Jésú, indúlge peccáta nostra,</v>
|
||||
<v lang="de">O mein <i><sup>⚬</sup></i>Jesus, verzeih' uns unsere Sünden,</v>
|
||||
<v lang="en">O my <i><sup>⚬</sup></i>Jesus, forgive us our sins,</v>
|
||||
<v lang="la">præsérva nos ab igne inférni,</v>
|
||||
<v lang="de">bewahre uns vor den Feuern der Hölle</v>
|
||||
<v lang="en">save us from the fires of hell,</v>
|
||||
<v lang="la">duc omnes ad cæli glóriam, </v>
|
||||
<v lang="de">und führe alle Seelen in den Himmel,</v>
|
||||
<v lang="en">and lead all souls to heaven,</v>
|
||||
<v lang="la">præcípe tua</v>
|
||||
<v lang="de">besonders jene,</v>
|
||||
<v lang="en">especially those</v>
|
||||
<v lang="la">misericórdia máxime egéntes. Amen.</v>
|
||||
<v lang="de">die Deiner Barmherzigkeit am meisten bedürfen. Amen.</v>
|
||||
<v lang="en">who are in most need of Thy mercy. Amen.</v>
|
||||
</p>
|
||||
</Prayer>
|
||||
|
||||
@@ -6,53 +6,78 @@
|
||||
<p>
|
||||
<v lang="la">Glória in excélsis <i><sup>⚬</sup></i> Deo.</v>
|
||||
<v lang="de">Ehre sei <i><sup>⚬</sup></i> Gott in der Höhe.</v>
|
||||
<v lang="en">Glory to <i><sup>⚬</sup></i> God in the highest.</v>
|
||||
<v lang="la">Et in terra pax homínibus</v>
|
||||
<v lang="de">Und auf Erden Friede den Mesnchen,</v>
|
||||
<v lang="en">And on earth peace to men</v>
|
||||
<v lang="la">bonæ voluntátis.</v>
|
||||
<v lang="de">die guten Willens sind.</v>
|
||||
<v lang="en">of good will.</v>
|
||||
<v lang="la">Laudámus te.</v>
|
||||
<v lang="de">Wir loben Dich.</v>
|
||||
<v lang="en">We praise Thee.</v>
|
||||
<v lang="la">Benedícimus te.</v>
|
||||
<v lang="de">Wir preisen Dich.</v>
|
||||
<v lang="en">We bless Thee.</v>
|
||||
<v lang="la"><i><sup>⚬</sup></i> Adorámus te.</v>
|
||||
<v lang="de"><i><sup>⚬</sup></i> Wir beten Dich an.</v>
|
||||
<v lang="en"><i><sup>⚬</sup></i> We adore Thee.</v>
|
||||
<v lang="la">Glorificámus te.</v>
|
||||
<v lang="de">Wir verherrlichen Dich.</v>
|
||||
<v lang="en">We glorify Thee.</v>
|
||||
<v lang="la"><i><sup>⚬</sup></i> Grátias ágimus tibi</v>
|
||||
<v lang="de"><i><sup>⚬</sup></i> Wir sagen Dir Dank</v>
|
||||
<v lang="en"><i><sup>⚬</sup></i> We give Thee thanks</v>
|
||||
<v lang="la">propter magnam glóriam tuam.</v>
|
||||
<v lang="de">ob Deiner grossen Herrlichkeit.</v>
|
||||
<v lang="en">for Thy great glory.</v>
|
||||
<v lang="la">Dómine Deus, Rex cæléstis,</v>
|
||||
<v lang="de">Herr und Gott, König des Himmels,</v>
|
||||
<v lang="en">Lord God, heavenly King,</v>
|
||||
<v lang="la">Deus Pater omnípotens.</v>
|
||||
<v lang="de">Gott allmächtiger Vater!</v>
|
||||
<v lang="en">God the Father almighty.</v>
|
||||
<v lang="la">Dómine Fili unigénite, <i><sup>⚬</sup></i> Jesu Christe.</v>
|
||||
<v lang="de">Herr <i><sup>⚬</sup></i> Jesus Christus, eingeborener Sohn!</v>
|
||||
<v lang="en">Lord <i><sup>⚬</sup></i> Jesus Christ, the only-begotten Son.</v>
|
||||
<v lang="la">Dómine Deus, Agnus Dei,</v>
|
||||
<v lang="de">Herr und Gott, Lamm Gottes,</v>
|
||||
<v lang="en">Lord God, Lamb of God,</v>
|
||||
<v lang="la">Fílius Patris.</v>
|
||||
<v lang="de">Sohn des Vaters!</v>
|
||||
<v lang="en">Son of the Father.</v>
|
||||
<v lang="la">Qui tollis peccáta mundi,</v>
|
||||
<v lang="de">Du nimmst hinweg die Sünden der Welt:</v>
|
||||
<v lang="en">Thou who takest away the sins of the world,</v>
|
||||
<v lang="la">miserére nobis.</v>
|
||||
<v lang="de">erbarme Dich unser.</v>
|
||||
<v lang="en">have mercy on us.</v>
|
||||
<v lang="la">Qui tollis peccáta mundi,</v>
|
||||
<v lang="de">Du nimmst hinwerg die Sünden der Welt.</v>
|
||||
<v lang="en">Thou who takest away the sins of the world,</v>
|
||||
<v lang="la"><i><sup>⚬</sup></i> súscipe depreciatiónem nostram.</v>
|
||||
<v lang="de"><i><sup>⚬</sup></i> nimm unser Flehen gnädig auf.</v>
|
||||
<v lang="en"><i><sup>⚬</sup></i> receive our prayer.</v>
|
||||
<v lang="la">Qui sedes ad déxteram Patris,</v>
|
||||
<v lang="de">Du sitzt zur Rechten des Vaters:</v>
|
||||
<v lang="en">Thou who sittest at the right hand of the Father,</v>
|
||||
<v lang="la">miserére nobis.</v>
|
||||
<v lang="de">erbarme Dich unser.</v>
|
||||
<v lang="en">have mercy on us.</v>
|
||||
<v lang="la">Quóniam tu solus Sanctus.</v>
|
||||
<v lang="de">Denn Du allein bist der Heilige.</v>
|
||||
<v lang="en">For Thou alone art holy.</v>
|
||||
<v lang="la">Tu solus Altíssimus,</v>
|
||||
<v lang="de">Du allein der Höchste,</v>
|
||||
<v lang="en">Thou alone art the Most High,</v>
|
||||
<v lang="la"><i><sup>⚬</sup></i> Jesu Christe.</v>
|
||||
<v lang="de"><i><sup>⚬</sup></i> Jesus Christus,</v>
|
||||
<v lang="en"><i><sup>⚬</sup></i> Jesus Christ.</v>
|
||||
<v lang="la">Cum Sancto Spíritu</v>
|
||||
<v lang="de">Mit dem Hl. Geiste,</v>
|
||||
<v lang="en">With the Holy Spirit,</v>
|
||||
<v lang="la"><i>♱</i> in glória Dei Patris. Amen.</v>
|
||||
<v lang="de"><i>♱</i> in der Herrlichkeit Gottes des Vaters. Amen.</v>
|
||||
<v lang="en"><i>♱</i> in the glory of God the Father. Amen.</v>
|
||||
</p>
|
||||
</Prayer>
|
||||
|
||||
@@ -6,9 +6,12 @@
|
||||
<p>
|
||||
<v lang="la">Glória Patri, et Fílio, et Spirítui Sancto.</v>
|
||||
<v lang="de">Ehre sei dem Vater und dem Sohne und dem Hl. Geiste.</v>
|
||||
<v lang="en">Glory be to the Father, and to the Son, and to the Holy Spirit.</v>
|
||||
<v lang="la">Sicut erat in princípio, et nunc, et semper:</v>
|
||||
<v lang="de">Wie es war am Anfang, so auch jetzt und allezeit</v>
|
||||
<v lang="en">As it was in the beginning, is now, and ever shall be,</v>
|
||||
<v lang="la">et in sǽcula sæculórum. Amen.</v>
|
||||
<v lang="de">und in Ewigkeit. Amen.</v>
|
||||
<v lang="en">world without end. Amen.</v>
|
||||
</p>
|
||||
</Prayer>
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
<p>
|
||||
<v>Jungfräulicher Vater <i><sup>⚬</sup></i>Jesu,</v>
|
||||
<v>Reinster Bräutigam <i><sup>⚬</sup></i>Mariä,</v>
|
||||
<v>Sankt Joseph, bitte Tag für Tag bei Jesus, dem Sohn Gottes.</v>
|
||||
<v>Seine Kraft und Gnade soll uns stärken,</v>
|
||||
<v>dass wir siegreich streiten im Leben</v>
|
||||
<v>und die Krone von Ihm erhalten im Sterben.</v>
|
||||
<v lang="de">Jungfräulicher Vater <i><sup>⚬</sup></i>Jesu,</v>
|
||||
<v lang="en">Virgin Father of <i><sup>⚬</sup></i>Jesus,</v>
|
||||
<v lang="de">Reinster Bräutigam <i><sup>⚬</sup></i>Mariä,</v>
|
||||
<v lang="en">Most pure Spouse of <i><sup>⚬</sup></i>Mary,</v>
|
||||
<v lang="de">Sankt Joseph, bitte Tag für Tag bei Jesus, dem Sohn Gottes.</v>
|
||||
<v lang="en">Saint Joseph, pray each day to Jesus, the Son of God.</v>
|
||||
<v lang="de">Seine Kraft und Gnade soll uns stärken,</v>
|
||||
<v lang="en">May His power and grace strengthen us,</v>
|
||||
<v lang="de">dass wir siegreich streiten im Leben</v>
|
||||
<v lang="en">that we may fight victoriously in life</v>
|
||||
<v lang="de">und die Krone von Ihm erhalten im Sterben.</v>
|
||||
<v lang="en">and receive the crown from Him at death.</v>
|
||||
</p>
|
||||
|
||||
@@ -6,5 +6,6 @@
|
||||
<p>
|
||||
<v lang="la">In nómine <i>♱</i> Patris, et Fílii, et Spíritus Sancti. Amen.</v>
|
||||
<v lang="de">Im Namen des <i>♱</i> Vaters und des Sohnes und des Heiligen Geistes. Amen.</v>
|
||||
<v lang="en">In the name of the <i>♱</i> Father, and of the Son, and of the Holy Spirit. Amen.</v>
|
||||
</p>
|
||||
</Prayer>
|
||||
|
||||
@@ -1,22 +1,32 @@
|
||||
<p>
|
||||
<v lang="la">Sáncte Míchael Archángele,</v>
|
||||
<v lang="de">Heiliger Erzengel Michael,</v>
|
||||
<v lang="en">Saint Michael the Archangel,</v>
|
||||
<v lang="la">defénde nos in proélio,</v>
|
||||
<v lang="de">verteidige uns im Kampfe!</v>
|
||||
<v lang="en">defend us in battle.</v>
|
||||
<v lang="la">cóntra nequítam et insídias</v>
|
||||
<v lang="de">Gegen die Bosheit und Nachstellungen</v>
|
||||
<v lang="en">Be our protection against the wickedness</v>
|
||||
<v lang="la">diáboli ésto præsídium.</v>
|
||||
<v lang="de">des Teufels sei unser Schutz. </v>
|
||||
<v lang="en">and snares of the devil.</v>
|
||||
<v lang="la">Ímperet ílli Déus, súpplices deprecámur:</v>
|
||||
<v lang="de">»Gott gebiete ihm!«, so bitten wir flehentlich.</v>
|
||||
<v lang="en">May God rebuke him, we humbly pray;</v>
|
||||
<v lang="la">tuque, Prínceps milítæ cæléstis,</v>
|
||||
<v lang="de">Du aber, Fürst der himmlischen Heerscharen,</v>
|
||||
<v lang="en">and do thou, O Prince of the heavenly host,</v>
|
||||
<v lang="la">Sátanam aliósque spíritus malígnos,</v>
|
||||
<v lang="de">stosse den Satan und die anderen bösen Geister,</v>
|
||||
<v lang="en">by the power of God, thrust into hell Satan</v>
|
||||
<v lang="la">qui ad perditiónem animárum</v>
|
||||
<v lang="la">pervagántur in múndo,</v>
|
||||
<v lang="de">die in der Welt umhergehen,</v>
|
||||
<v lang="de">um die Seelen zu verderben,</v>
|
||||
<v lang="en">and all the evil spirits</v>
|
||||
<v lang="en">who prowl about the world seeking the ruin of souls.</v>
|
||||
<v lang="la">divína virtúte, in inférnum detrúde. Amen.</v>
|
||||
<v lang="de">durch die Kraft Gottes in die Hölle. Amen.</v>
|
||||
<v lang="en">Amen.</v>
|
||||
</p>
|
||||
|
||||
@@ -6,21 +6,30 @@
|
||||
<p>
|
||||
<v lang="la">Pater noster, qui es in cælis</v>
|
||||
<v lang="de">Vater unser, der Du bist im Himmel,</v>
|
||||
<v lang="en">Our Father, Who art in heaven,</v>
|
||||
<v lang="la">Sanctificétur nomen tuum</v>
|
||||
<v lang="de">geheiligt werde Dein Name;</v>
|
||||
<v lang="en">hallowed be Thy name;</v>
|
||||
<v lang="la">Advéniat regnum tuum</v>
|
||||
<v lang="de">zu uns komme Dein Reich;</v>
|
||||
<v lang="en">Thy kingdom come;</v>
|
||||
<v lang="la">Fiat volúntas tua, sicut in cælo, et in terra.</v>
|
||||
<v lang="de">Dein Wille geschehe, wie im Himmel, also auch auf Erden!</v>
|
||||
<v lang="en">Thy will be done on earth as it is in heaven.</v>
|
||||
<v lang="la">Panem nostrum quotidiánum da nobis hódie.</v>
|
||||
<v lang="de">Unser tägliches Brot gib uns heute;</v>
|
||||
<v lang="en">Give us this day our daily bread;</v>
|
||||
<v lang="la">Et dimítte nobis debíta nostra,</v>
|
||||
<v lang="de">und vergib uns unsere Schulden,</v>
|
||||
<v lang="en">and forgive us our trespasses,</v>
|
||||
<v lang="la">sicut et nos dimíttimus debitóribus nostris.</v>
|
||||
<v lang="de">wie auch wir vergeben unsern Schuldigern;</v>
|
||||
<v lang="en">as we forgive those who trespass against us;</v>
|
||||
<v lang="la">Et ne nos indúcas in tentatiónem.</v>
|
||||
<v lang="de">und führe uns nicht in Versuchung.</v>
|
||||
<v lang="en">and lead us not into temptation,</v>
|
||||
<v lang="la">Sed líbera nos a malo. Amen.</v>
|
||||
<v lang="de">Sondern erlöse uns von dem Übel. Amen.</v>
|
||||
<v lang="en">but deliver us from evil. Amen.</v>
|
||||
</p>
|
||||
</Prayer>
|
||||
|
||||
@@ -6,14 +6,18 @@
|
||||
|
||||
// Get context if available (graceful fallback for standalone usage)
|
||||
let showLatinStore;
|
||||
let langStore;
|
||||
try {
|
||||
const context = getLanguageContext();
|
||||
showLatinStore = context.showLatin;
|
||||
langStore = context.lang;
|
||||
} catch {
|
||||
showLatinStore = null;
|
||||
langStore = null;
|
||||
}
|
||||
|
||||
let showLatin = $derived(showLatinStore ? $showLatinStore : true);
|
||||
let urlLang = $derived(langStore ? $langStore : 'de');
|
||||
</script>
|
||||
|
||||
<style>
|
||||
@@ -22,8 +26,8 @@
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
/* Reverse order when German is primary */
|
||||
.prayer-wrapper.german-primary :global(p) {
|
||||
/* Reverse order when vernacular is primary */
|
||||
.prayer-wrapper.vernacular-primary :global(p) {
|
||||
flex-direction: column-reverse;
|
||||
}
|
||||
|
||||
@@ -32,97 +36,197 @@
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Latin primary (default) */
|
||||
.prayer-wrapper :global(v:lang(la)) {
|
||||
/* === GERMAN MODE (default, /glaube/*) === */
|
||||
|
||||
/* Hide English in German mode */
|
||||
.prayer-wrapper.lang-de :global(v:lang(en)) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Latin primary styling (German mode) */
|
||||
.prayer-wrapper.lang-de :global(v:lang(la)) {
|
||||
color: var(--nord6);
|
||||
}
|
||||
|
||||
.prayer-wrapper :global(v:lang(de)) {
|
||||
.prayer-wrapper.lang-de :global(v:lang(de)) {
|
||||
color: grey;
|
||||
}
|
||||
|
||||
@media(prefers-color-scheme: light) {
|
||||
.prayer-wrapper.lang-de :global(v:lang(la)) {
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
|
||||
/* Vernacular primary mode (German) */
|
||||
.prayer-wrapper.lang-de.vernacular-primary :global(v:lang(de)) {
|
||||
color: var(--nord6);
|
||||
}
|
||||
|
||||
.prayer-wrapper.lang-de.vernacular-primary :global(v:lang(la)) {
|
||||
color: grey;
|
||||
}
|
||||
|
||||
@media(prefers-color-scheme: light) {
|
||||
.prayer-wrapper.lang-de.vernacular-primary :global(v:lang(de)) {
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
|
||||
/* Monolingual mode (German) - hide Latin, show only German */
|
||||
.prayer-wrapper.lang-de.monolingual :global(v:lang(la)) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.prayer-wrapper.lang-de.monolingual :global(v:lang(de)) {
|
||||
color: var(--nord6);
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
@media(prefers-color-scheme: light) {
|
||||
.prayer-wrapper.lang-de.monolingual :global(v:lang(de)) {
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
|
||||
/* === ENGLISH MODE (/faith/*) === */
|
||||
|
||||
/* Hide German in English mode */
|
||||
.prayer-wrapper.lang-en :global(v:lang(de)) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Latin primary styling (English mode) */
|
||||
.prayer-wrapper.lang-en :global(v:lang(la)) {
|
||||
color: var(--nord6);
|
||||
}
|
||||
|
||||
.prayer-wrapper.lang-en :global(v:lang(en)) {
|
||||
color: grey;
|
||||
}
|
||||
|
||||
@media(prefers-color-scheme: light) {
|
||||
.prayer-wrapper.lang-en :global(v:lang(la)) {
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
|
||||
/* Vernacular primary mode (English) */
|
||||
.prayer-wrapper.lang-en.vernacular-primary :global(v:lang(en)) {
|
||||
color: var(--nord6);
|
||||
}
|
||||
|
||||
.prayer-wrapper.lang-en.vernacular-primary :global(v:lang(la)) {
|
||||
color: grey;
|
||||
}
|
||||
|
||||
@media(prefers-color-scheme: light) {
|
||||
.prayer-wrapper.lang-en.vernacular-primary :global(v:lang(en)) {
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
|
||||
/* Monolingual mode (English) - hide Latin, show only English */
|
||||
.prayer-wrapper.lang-en.monolingual :global(v:lang(la)) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.prayer-wrapper.lang-en.monolingual :global(v:lang(en)) {
|
||||
color: var(--nord6);
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
@media(prefers-color-scheme: light) {
|
||||
.prayer-wrapper.lang-en.monolingual :global(v:lang(en)) {
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
|
||||
/* === COMMON STYLES === */
|
||||
|
||||
.prayer-wrapper :global(i) {
|
||||
font-style: normal;
|
||||
color: var(--nord11);
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
@media(prefers-color-scheme: light) {
|
||||
.prayer-wrapper :global(v:lang(la)) {
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
|
||||
/* German primary mode */
|
||||
.prayer-wrapper.german-primary :global(v:lang(de)) {
|
||||
color: var(--nord6);
|
||||
}
|
||||
|
||||
.prayer-wrapper.german-primary :global(v:lang(la)) {
|
||||
color: grey;
|
||||
}
|
||||
|
||||
@media(prefers-color-scheme: light) {
|
||||
.prayer-wrapper.german-primary :global(v:lang(de)) {
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
|
||||
/* Mystery text styling */
|
||||
.prayer-wrapper :global(v.mystery-text:lang(la)) {
|
||||
/* Mystery text styling - German mode */
|
||||
.prayer-wrapper.lang-de :global(v.mystery-text:lang(la)) {
|
||||
color: var(--nord11) !important;
|
||||
font-weight: 700;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.prayer-wrapper :global(v.mystery-text:lang(de)) {
|
||||
.prayer-wrapper.lang-de :global(v.mystery-text:lang(de)) {
|
||||
color: var(--nord12) !important;
|
||||
font-weight: 700;
|
||||
font-size: 0.95em;
|
||||
}
|
||||
|
||||
.prayer-wrapper.german-primary :global(v.mystery-text:lang(de)) {
|
||||
.prayer-wrapper.lang-de.vernacular-primary :global(v.mystery-text:lang(de)) {
|
||||
color: var(--nord11) !important;
|
||||
font-weight: 700;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.prayer-wrapper.german-primary :global(v.mystery-text:lang(la)) {
|
||||
.prayer-wrapper.lang-de.vernacular-primary :global(v.mystery-text:lang(la)) {
|
||||
color: var(--nord12) !important;
|
||||
font-weight: 700;
|
||||
font-size: 0.95em;
|
||||
}
|
||||
|
||||
/* Hide Latin in monolingual mode */
|
||||
.prayer-wrapper.monolingual :global(v:lang(la)) {
|
||||
.prayer-wrapper.lang-de.monolingual :global(v.mystery-text:lang(la)) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* German gets primary styling in monolingual mode */
|
||||
.prayer-wrapper.monolingual :global(v:lang(de)) {
|
||||
color: var(--nord6);
|
||||
margin-bottom: 0.5em;
|
||||
.prayer-wrapper.lang-de.monolingual :global(v.mystery-text:lang(de)) {
|
||||
color: var(--nord11) !important;
|
||||
font-weight: 700;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
@media(prefers-color-scheme: light) {
|
||||
.prayer-wrapper.monolingual :global(v:lang(de)) {
|
||||
color: black;
|
||||
}
|
||||
/* Mystery text styling - English mode */
|
||||
.prayer-wrapper.lang-en :global(v.mystery-text:lang(la)) {
|
||||
color: var(--nord11) !important;
|
||||
font-weight: 700;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
/* Hide Latin mystery text in monolingual mode */
|
||||
.prayer-wrapper.monolingual :global(v.mystery-text:lang(la)) {
|
||||
.prayer-wrapper.lang-en :global(v.mystery-text:lang(en)) {
|
||||
color: var(--nord12) !important;
|
||||
font-weight: 700;
|
||||
font-size: 0.95em;
|
||||
}
|
||||
|
||||
.prayer-wrapper.lang-en.vernacular-primary :global(v.mystery-text:lang(en)) {
|
||||
color: var(--nord11) !important;
|
||||
font-weight: 700;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.prayer-wrapper.lang-en.vernacular-primary :global(v.mystery-text:lang(la)) {
|
||||
color: var(--nord12) !important;
|
||||
font-weight: 700;
|
||||
font-size: 0.95em;
|
||||
}
|
||||
|
||||
.prayer-wrapper.lang-en.monolingual :global(v.mystery-text:lang(la)) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* German mystery text gets prominent styling in monolingual mode */
|
||||
.prayer-wrapper.monolingual :global(v.mystery-text:lang(de)) {
|
||||
.prayer-wrapper.lang-en.monolingual :global(v.mystery-text:lang(en)) {
|
||||
color: var(--nord11) !important;
|
||||
font-weight: 700;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="prayer-wrapper" class:german-primary={!latinPrimary} class:monolingual={!showLatin}>
|
||||
<div
|
||||
class="prayer-wrapper"
|
||||
class:vernacular-primary={!latinPrimary}
|
||||
class:monolingual={!showLatin}
|
||||
class:lang-de={urlLang === 'de'}
|
||||
class:lang-en={urlLang === 'en'}
|
||||
>
|
||||
{@render children?.()}
|
||||
</div>
|
||||
|
||||
@@ -6,25 +6,35 @@
|
||||
<p>
|
||||
<v lang="la">Orémus:</v>
|
||||
<v lang="de">Lasset uns beten:</v>
|
||||
<v lang="en">Let us pray:</v>
|
||||
</p>
|
||||
<p>
|
||||
<v lang="la">Déus, cújus Unigénitus,</v>
|
||||
<v lang="de">O Gott, dessen eingeborner Sohn</v>
|
||||
<v lang="en">O God, whose only begotten Son,</v>
|
||||
<v lang="la">pér vítam, mórtem ét resurrectiónem súam</v>
|
||||
<v lang="de">durch sein Leben, seinen Tod und seine Auferstehung</v>
|
||||
<v lang="en">by His life, death, and resurrection,</v>
|
||||
<v lang="la">nóbis salútis ætérnæ præmia comparávit:</v>
|
||||
<v lang="de">uns die Belohnung des ewigen Lebens verdient hat,</v>
|
||||
<v lang="en">has purchased for us the rewards of eternal life:</v>
|
||||
<v lang="la">concéde, quæsumus;</v>
|
||||
<v lang="de">verleihe uns, wir bitten dich,</v>
|
||||
<v lang="en">grant, we beseech Thee,</v>
|
||||
<v lang="la">út, hæc mystéria sanctíssimo beátæ Maríæ Vírginis Rosário recoléntes;</v>
|
||||
<v lang="de">dass wir, indem wir die Geheimisse des heiligen Rosenkranzes der allerseligsten Jungfrau ehren,</v>
|
||||
<v lang="en">that by meditating on these mysteries of the most holy Rosary of the Blessed Virgin Mary,</v>
|
||||
<v lang="la">ét imitémur quód cóntinent,</v>
|
||||
<v lang="de">was sie enthalten nachahmen</v>
|
||||
<v lang="en">we may imitate what they contain</v>
|
||||
<v lang="la">ét quód promíttunt, assequámur.</v>
|
||||
<v lang="de">und dadurch erlangen, was uns in denselben verheissen ist.</v>
|
||||
<v lang="en">and obtain what they promise.</v>
|
||||
<v lang="la">Pér eúmdem Chrístum Dóminum nóstrum.</v>
|
||||
<v lang="de">Durch unsern Herrn <i><sup>⚬</sup></i>Jesus Christus.</v>
|
||||
<v lang="en">Through the same Christ our Lord.</v>
|
||||
<v lang="la">Ámen.</v>
|
||||
<v lang="de">Amen.</v>
|
||||
<v lang="en">Amen.</v>
|
||||
</p>
|
||||
</Prayer>
|
||||
|
||||
@@ -6,28 +6,39 @@
|
||||
<p>
|
||||
<v lang="la">Salve, Regína,</v>
|
||||
<v lang="de">Sei gegrüsst, o Königin,</v>
|
||||
<v lang="en">Hail, Holy Queen,</v>
|
||||
<v lang="la">máter misericórdiae;</v>
|
||||
<v lang="de">Mutter der Barmherzigkeit,</v>
|
||||
<v lang="en">Mother of Mercy,</v>
|
||||
<v lang="la">Víta, dulcédo et spes nóstra, sálve.</v>
|
||||
<v lang="de">unser Leben, unsre Wonne</v>
|
||||
<v lang="de">und unsere Hoffnung, sei gegrüsst!</v>
|
||||
<v lang="en">our life, our sweetness and our hope.</v>
|
||||
</p>
|
||||
<p>
|
||||
<v lang="la">Ad te clamámus, éxsules fílii Hévae.</v>
|
||||
<v lang="de">Zu dir rufen wir verbannte Kinder Evas;</v>
|
||||
<v lang="en">To thee do we cry, poor banished children of Eve.</v>
|
||||
<v lang="la">Ad te suspirámus,</v>
|
||||
<v lang="de">zu dir seufzen wir</v>
|
||||
<v lang="en">To thee do we send up our sighs,</v>
|
||||
<v lang="la">geméntes et fléntes in hac lacrimárum válle.</v>
|
||||
<v lang="de">trauernd und weinend in diesem Tal der Tränen.</v>
|
||||
<v lang="en">mourning and weeping in this valley of tears.</v>
|
||||
<v lang="la">Eia ergo, Advocáta nóstra,</v>
|
||||
<v lang="de">Wohlan denn, unsre Fürsprecherin,</v>
|
||||
<v lang="en">Turn then, most gracious advocate,</v>
|
||||
<v lang="la">íllos túos misericórdes óculos ad nos convérte.</v>
|
||||
<v lang="de">deine barmherzigen Augen wende zu uns</v>
|
||||
<v lang="en">thine eyes of mercy toward us.</v>
|
||||
<v lang="la">Et <i><sup>⚬</sup></i>Jésum, benedíctum frúctum véntris túi,</v>
|
||||
<v lang="de">und nach diesem Elend zeige uns <i><sup>⚬</sup></i>Jesus,</v>
|
||||
<v lang="en">And after this our exile show unto us</v>
|
||||
<v lang="la">nóbis post hoc exsílíum osténde.</v>
|
||||
<v lang="de">die gebenedeite Frucht deines Leibes.</v>
|
||||
<v lang="en">the blessed fruit of thy womb, <i><sup>⚬</sup></i>Jesus.</v>
|
||||
<v lang="la">O clémens, o pía, o dúlcis Vírgo <i><sup>⚬</sup></i>María.</v>
|
||||
<v lang="de">O gütige, o milde, o süsse Jungfrau <i><sup>⚬</sup></i>Maria.</v>
|
||||
<v lang="en">O clement, O loving, O sweet Virgin <i><sup>⚬</sup></i>Mary.</v>
|
||||
</p>
|
||||
</Prayer>
|
||||
|
||||
@@ -1,16 +1,31 @@
|
||||
import { setContext, getContext } from 'svelte';
|
||||
import { setContext, getContext, hasContext } from 'svelte';
|
||||
import { writable } from 'svelte/store';
|
||||
|
||||
const LANGUAGE_CONTEXT_KEY = Symbol('language');
|
||||
|
||||
export function createLanguageContext() {
|
||||
const showLatin = writable(true); // true = bilingual, false = monolingual
|
||||
/**
|
||||
* Creates or updates a language context for prayer components
|
||||
* @param {Object} options
|
||||
* @param {'de' | 'en'} options.urlLang - The URL language (de for /glaube, en for /faith)
|
||||
*/
|
||||
export function createLanguageContext({ urlLang = 'de' } = {}) {
|
||||
// Check if context already exists (e.g., during navigation)
|
||||
if (hasContext(LANGUAGE_CONTEXT_KEY)) {
|
||||
const existing = getContext(LANGUAGE_CONTEXT_KEY);
|
||||
// Update the lang store with the new URL language
|
||||
existing.lang.set(urlLang);
|
||||
return existing;
|
||||
}
|
||||
|
||||
const showLatin = writable(true); // true = bilingual (Latin + vernacular), false = monolingual
|
||||
const lang = writable(urlLang); // 'de' or 'en' based on URL
|
||||
|
||||
setContext(LANGUAGE_CONTEXT_KEY, {
|
||||
showLatin
|
||||
showLatin,
|
||||
lang
|
||||
});
|
||||
|
||||
return { showLatin };
|
||||
return { showLatin, lang };
|
||||
}
|
||||
|
||||
export function getLanguageContext() {
|
||||
|
||||
@@ -17,13 +17,45 @@
|
||||
import JosephGebet from "$lib/components/prayers/JosephGebet.svelte";
|
||||
import Confiteor from "$lib/components/prayers/Confiteor.svelte";
|
||||
|
||||
let { data } = $props();
|
||||
|
||||
// Create language context for prayer components
|
||||
createLanguageContext();
|
||||
const langContext = createLanguageContext({ urlLang: data.lang });
|
||||
|
||||
// Update lang store when data.lang changes (e.g., after navigation)
|
||||
$effect(() => {
|
||||
langContext.lang.set(data.lang);
|
||||
});
|
||||
|
||||
// Reactive isEnglish based on data.lang
|
||||
const isEnglish = $derived(data.lang === 'en');
|
||||
|
||||
const labels = $derived({
|
||||
title: isEnglish ? 'Prayers' : 'Gebete',
|
||||
description: isEnglish
|
||||
? 'Catholic prayers in Latin and English.'
|
||||
: 'Katholische Gebete auf Deutsch und Latein.',
|
||||
signOfCross: isEnglish ? 'The Sign of the Cross' : 'Das heilige Kreuzzeichen',
|
||||
gloriaPatri: 'Glória Patri',
|
||||
paternoster: isEnglish ? 'Our Father' : 'Paternoster',
|
||||
credo: isEnglish ? 'Nicene Creed' : 'Credo',
|
||||
aveMaria: isEnglish ? 'Hail Mary' : 'Ave Maria',
|
||||
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',
|
||||
confiteor: isEnglish ? 'The Confiteor' : 'Das Confiteor'
|
||||
});
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>Gebete - Bocken</title>
|
||||
<meta name="description" content="Katholische Gebete auf Deutsch und Latein." />
|
||||
<title>{labels.title} - Bocken</title>
|
||||
<meta name="description" content={labels.description} />
|
||||
</svelte:head>
|
||||
<style>
|
||||
.ccontainer{
|
||||
@@ -55,7 +87,7 @@ h1{
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
</style>
|
||||
<h1>Gebete</h1>
|
||||
<h1>{labels.title}</h1>
|
||||
|
||||
<div class="toggle-controls">
|
||||
<LanguageToggle />
|
||||
@@ -64,52 +96,52 @@ h1{
|
||||
<div class="ccontainer">
|
||||
<div class=container>
|
||||
|
||||
<Gebet name={"Das heilige Kreuzzeichen"} is_bilingue={true}>
|
||||
<Gebet name={labels.signOfCross} is_bilingue={true}>
|
||||
<Kreuzzeichen />
|
||||
</Gebet>
|
||||
|
||||
<Gebet name={"Glória Patri"} is_bilingue={true}>
|
||||
<Gebet name={labels.gloriaPatri} is_bilingue={true}>
|
||||
<GloriaPatri />
|
||||
</Gebet>
|
||||
|
||||
<Gebet name={"Paternoster"} is_bilingue={true}>
|
||||
<Gebet name={labels.paternoster} is_bilingue={true}>
|
||||
<Paternoster />
|
||||
</Gebet>
|
||||
|
||||
<Gebet name={"Credo"} is_bilingue={true}>
|
||||
<Gebet name={labels.credo} is_bilingue={true}>
|
||||
<Credo />
|
||||
</Gebet>
|
||||
|
||||
<Gebet name={"Ave Maria"} is_bilingue={true}>
|
||||
<Gebet name={labels.aveMaria} is_bilingue={true}>
|
||||
<AveMaria />
|
||||
</Gebet>
|
||||
|
||||
<Gebet name={"Salve Regina"} is_bilingue={true}>
|
||||
<Gebet name={labels.salveRegina} is_bilingue={true}>
|
||||
<SalveRegina />
|
||||
</Gebet>
|
||||
|
||||
<Gebet name={"Das Fatimagebet"} is_bilingue={true}>
|
||||
<Gebet name={labels.fatima} is_bilingue={true}>
|
||||
<FatimaGebet />
|
||||
</Gebet>
|
||||
|
||||
<Gebet name={"Glória"} is_bilingue={true}>
|
||||
<p slot="intro">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.</p>
|
||||
<Gebet name={labels.gloria} is_bilingue={true}>
|
||||
<p slot="intro">{labels.gloriaIntro}</p>
|
||||
<Gloria />
|
||||
</Gebet>
|
||||
|
||||
<Gebet name={"Gebet zum hl. Erzengel Michael"} is_bilingue={true}>
|
||||
<Gebet name={labels.michael} is_bilingue={true}>
|
||||
<MichaelGebet />
|
||||
</Gebet>
|
||||
|
||||
<Gebet name={"Bruder Klaus Gebet"} is_bilingue={false}>
|
||||
<Gebet name={labels.bruderKlaus} is_bilingue={false}>
|
||||
<BruderKlausGebet />
|
||||
</Gebet>
|
||||
|
||||
<Gebet name={"Josephgebet des hl. Papst Pius X"} is_bilingue={false}>
|
||||
<Gebet name={labels.joseph} is_bilingue={false}>
|
||||
<JosephGebet />
|
||||
</Gebet>
|
||||
|
||||
<Gebet name={"Das Confiteor"} is_bilingue={true}>
|
||||
<Gebet name={labels.confiteor} is_bilingue={true}>
|
||||
<Confiteor />
|
||||
</Gebet>
|
||||
</div>
|
||||
|
||||
@@ -83,6 +83,38 @@ const mysteriesLatin = {
|
||||
]
|
||||
};
|
||||
|
||||
// English mysteries (TODO: translate)
|
||||
const mysteriesEnglish = {
|
||||
freudenreich: [
|
||||
"Jesus, whom thou, O Virgin, didst conceive of the Holy Spirit.",
|
||||
"Jesus, whom thou, O Virgin, didst carry to Elizabeth.",
|
||||
"Jesus, whom thou, O Virgin, didst bring forth in Bethlehem.",
|
||||
"Jesus, whom thou, O Virgin, didst present in the Temple.",
|
||||
"Jesus, whom thou, O Virgin, didst find in the Temple."
|
||||
],
|
||||
schmerzhaften: [
|
||||
"Jesus, who sweat blood for us.",
|
||||
"Jesus, who was scourged for us.",
|
||||
"Jesus, who was crowned with thorns for us.",
|
||||
"Jesus, who carried the heavy cross for us.",
|
||||
"Jesus, who was crucified for us."
|
||||
],
|
||||
glorreichen: [
|
||||
"Jesus, who rose from the dead.",
|
||||
"Jesus, who ascended into heaven.",
|
||||
"Jesus, who sent us the Holy Spirit.",
|
||||
"Jesus, who took thee, O Virgin, into heaven.",
|
||||
"Jesus, who crowned thee, O Virgin, in heaven."
|
||||
],
|
||||
lichtreichen: [
|
||||
"Jesus, who was baptized by John.",
|
||||
"Jesus, who revealed Himself at the wedding in Cana.",
|
||||
"Jesus, who proclaimed the Kingdom of God.",
|
||||
"Jesus, who was transfigured on the mountain.",
|
||||
"Jesus, who gave us the Eucharist."
|
||||
]
|
||||
};
|
||||
|
||||
// Short titles for mysteries (for display in headings)
|
||||
const mysteryTitles = {
|
||||
freudenreich: [
|
||||
@@ -115,6 +147,38 @@ const mysteryTitles = {
|
||||
]
|
||||
};
|
||||
|
||||
// English short titles for mysteries (TODO: translate)
|
||||
const mysteryTitlesEnglish = {
|
||||
freudenreich: [
|
||||
"Annunciation",
|
||||
"Visitation",
|
||||
"Nativity",
|
||||
"Presentation",
|
||||
"Finding in the Temple"
|
||||
],
|
||||
schmerzhaften: [
|
||||
"Agony in the Garden",
|
||||
"Scourging",
|
||||
"Crowning with Thorns",
|
||||
"Carrying of the Cross",
|
||||
"Crucifixion"
|
||||
],
|
||||
glorreichen: [
|
||||
"Resurrection",
|
||||
"Ascension",
|
||||
"Descent of the Holy Spirit",
|
||||
"Assumption of Mary",
|
||||
"Coronation of Mary"
|
||||
],
|
||||
lichtreichen: [
|
||||
"Baptism",
|
||||
"Wedding at Cana",
|
||||
"Proclamation of the Kingdom",
|
||||
"Transfiguration",
|
||||
"Institution of the Eucharist"
|
||||
]
|
||||
};
|
||||
|
||||
// Toggle for including Luminous mysteries
|
||||
let includeLuminous = $state(true);
|
||||
|
||||
@@ -122,7 +186,47 @@ let includeLuminous = $state(true);
|
||||
let hasLoadedFromStorage = false;
|
||||
|
||||
// Create language context for prayer components (LanguageToggle will use this)
|
||||
createLanguageContext();
|
||||
const langContext = createLanguageContext({ urlLang: data.lang });
|
||||
|
||||
// Update lang store when data.lang changes (e.g., after navigation)
|
||||
$effect(() => {
|
||||
langContext.lang.set(data.lang);
|
||||
});
|
||||
|
||||
// UI labels based on URL language (reactive)
|
||||
const isEnglish = $derived(data.lang === 'en');
|
||||
const labels = $derived({
|
||||
pageTitle: isEnglish ? 'Interactive Rosary' : 'Interaktiver Rosenkranz',
|
||||
pageDescription: isEnglish
|
||||
? 'Interactive digital version of the Rosary for praying along. Scroll through the prayers and follow the visualization.'
|
||||
: 'Interaktive digitale Version des Rosenkranzes zum Mitbeten. Scrolle durch die Gebete und folge der Visualisierung.',
|
||||
mysteries: isEnglish ? 'Mysteries' : 'Geheimnisse',
|
||||
today: isEnglish ? 'Today' : 'Heutige',
|
||||
joyful: isEnglish ? 'Joyful' : 'Freudenreiche',
|
||||
sorrowful: isEnglish ? 'Sorrowful' : 'Schmerzhaften',
|
||||
glorious: isEnglish ? 'Glorious' : 'Glorreichen',
|
||||
luminous: isEnglish ? 'Luminous' : 'Lichtreichen',
|
||||
includeLuminous: isEnglish ? 'Include Luminous Mysteries' : 'Lichtreiche Geheimnisse einbeziehen',
|
||||
beginning: isEnglish ? 'Beginning' : 'Anfang',
|
||||
signOfCross: isEnglish ? '♱ Sign of the Cross' : '♱ Das Kreuzzeichen',
|
||||
ourFather: isEnglish ? 'Our Father' : 'Vater unser',
|
||||
hailMary: isEnglish ? 'Hail Mary' : 'Ave Maria',
|
||||
faith: isEnglish ? 'Faith' : 'Glaube',
|
||||
hope: isEnglish ? 'Hope' : 'Hoffnung',
|
||||
love: isEnglish ? 'Love' : 'Liebe',
|
||||
decade: isEnglish ? 'Decade' : 'Gesätz',
|
||||
optional: isEnglish ? 'optional' : 'optional',
|
||||
gloriaPatri: 'Gloria Patri',
|
||||
fatimaPrayer: isEnglish ? 'Fatima Prayer' : 'Das Fatima Gebet',
|
||||
conclusion: isEnglish ? 'Conclusion' : 'Abschluss',
|
||||
finalPrayer: isEnglish ? 'Final Prayer' : 'Schlussgebet',
|
||||
footnoteSign: isEnglish ? 'Make the Sign of the Cross here' : 'Hier das Kreuzzeichen machen',
|
||||
footnoteBow: isEnglish ? 'Bow the head here' : 'Hier den Kopf senken',
|
||||
showBibleVerse: isEnglish ? 'Show Bible verse' : 'Bibelstelle anzeigen',
|
||||
mysteryFaith: isEnglish ? 'Jesus, who may increase our faith' : 'Jesus, der in uns den Glauben vermehre',
|
||||
mysteryHope: isEnglish ? 'Jesus, who may strengthen our hope' : 'Jesus, der in uns die Hoffnung stärke',
|
||||
mysteryLove: isEnglish ? 'Jesus, who may kindle our love' : 'Jesus, der in uns die Liebe entzünde'
|
||||
});
|
||||
|
||||
// Save luminous toggle state to localStorage whenever it changes (but only after initial load)
|
||||
$effect(() => {
|
||||
@@ -170,7 +274,8 @@ let todaysMystery = $state(initialMystery); // Track today's auto-selected myste
|
||||
// Derive these values from selectedMystery so they update automatically
|
||||
let currentMysteries = $derived(mysteries[selectedMystery]);
|
||||
let currentMysteriesLatin = $derived(mysteriesLatin[selectedMystery]);
|
||||
let currentMysteryTitles = $derived(mysteryTitles[selectedMystery]);
|
||||
let currentMysteriesEnglish = $derived(mysteriesEnglish[selectedMystery]);
|
||||
let currentMysteryTitles = $derived(isEnglish ? mysteryTitlesEnglish[selectedMystery] : mysteryTitles[selectedMystery]);
|
||||
let currentMysteryDescriptions = $derived(data.mysteryDescriptions[selectedMystery] || []);
|
||||
|
||||
// Function to switch mysteries
|
||||
@@ -1125,15 +1230,15 @@ h1 {
|
||||
}
|
||||
</style>
|
||||
<svelte:head>
|
||||
<title>Interaktiver Rosenkranz</title>
|
||||
<meta name="description" content="Interaktive digitale Version des Rosenkranzes zum Mitbeten. Scrolle durch die Gebete und folge der Visualisierung.">
|
||||
<title>{labels.pageTitle}</title>
|
||||
<meta name="description" content={labels.pageDescription}>
|
||||
</svelte:head>
|
||||
|
||||
<div class="page-container">
|
||||
<h1>Interaktiver Rosenkranz</h1>
|
||||
<h1>{labels.pageTitle}</h1>
|
||||
|
||||
|
||||
<h2 style="text-align:center;">Geheimnisse</h2>
|
||||
<h2 style="text-align:center;">{labels.mysteries}</h2>
|
||||
<!-- Mystery Selector -->
|
||||
<div class="mystery-selector" class:four-mysteries={includeLuminous}>
|
||||
<button
|
||||
@@ -1142,7 +1247,7 @@ h1 {
|
||||
onclick={() => selectMystery('freudenreich')}
|
||||
>
|
||||
{#if todaysMystery === 'freudenreich'}
|
||||
<span class="today-badge">Heutige</span>
|
||||
<span class="today-badge">{labels.today}</span>
|
||||
{/if}
|
||||
<svg viewBox="-10 0 2058 2048">
|
||||
<path d="M1935 90q0 32 -38 91q-21 29 -56 90q-20 55 -63 164q-35 86 -95 143q-22 -21 -43 -45q51 -49 85 -139q49 -130 61 -152q-126 48 -152 63q-76 46 -95 128q-27 -18 -58 -25q28 -104 97 -149q31 -20 138 -52q90 -28 137 -74l29 -39q22 -30 32 -30q21 0 21 26zM1714 653 q-90 30 -113 43q-65 36 -65 90q0 19 20 119q23 116 23 247q0 169 -103 299q-111 141 -275 141q-254 0 -283 87q-16 104 -31 207q-27 162 -76 162q-21 0 -41 -20q-16 -19 -32 -37q-10 3 -33 22q-18 15 -39 15q-28 0 -50 -44.5t-30 -44.5q-10 0 -35.5 11.5t-41.5 11.5 q-47 0 -58.5 -45.5t-21.5 -45.5t-29.5 2.5t-29.5 2.5q-46 0 -46 -30q0 -16 14 -44.5t14 -44.5q0 -8 -46.5 -25.5t-46.5 -48.5q0 -34 35.5 -52t99.5 -31q91 -19 103 -22q113 -32 171 -93q37 -39 105 -165q34 -64 43 -82q26 -53 31 -85q-129 -67 -224 -76q-33 0 -96 -11 q-36 -13 -36 -41q0 -7 2 -19.5t2 -19.5q0 -20 -67.5 -42t-67.5 -64q0 -11 8.5 -30t8.5 -30q0 -15 -79 -39t-79 -63q0 -16 9 -45t9 -45q0 -20 -29 -43q-23 -17 -46 -33q-49 -44 -49 -215q0 -8 1 -15q91 53 194 68l282 16q202 12 304 59q143 65 143 210q0 15 -2 44t-2 44 q0 122 78 122q73 0 108 -133q16 -70 32 -139q21 -81 57 -119q46 -51 130 -51q71 0 122 61q90 107 154 149zM1597 636q-25 -22 -77 -91q-30 -40 -75 -40q-91 0 -131 115q-30 106 -59 213q-44 115 -144 115q-146 0 -146 -180q0 -16 2.5 -46.5t2.5 -46.5q0 -62 -19 -87 q-70 -92 -303 -115q-173 -9 -347 -18q-55 -6 -116 -30v34q0 27 57.5 73.5t57.5 91.5q0 16 -10.5 45t-10.5 44q1 1 7 1q3 0 7 1q146 36 146 105q0 13 -8.5 32.5t-8.5 27.5h10q5 0 9 1q61 15 86 36q32 28 28 85q173 15 372 107q-7 77 -80 215q-67 128 -127 195 q-67 74 -169 104q-96 24 -193 47q-10 3 -29 13q86 18 86 70q0 19 -19 62q15 -5 33 -5q42 0 59 26q8 11 22 61l-1 3q10 0 34.5 -11.5t42.5 -11.5q55 0 88 84q38 -32 64 -32q37 0 66 41q25 -53 33 -151q10 -112 23 -154q43 -136 337 -136q116 0 215 -108q105 -114 105 -277 q0 -23 -12 -112l-28 -207q-4 -30 -4 -42q0 -97 124 -147zM1506 605q0 38 -38 38q-39 0 -39 -38t39 -38q38 0 38 38z" />
|
||||
@@ -1152,7 +1257,7 @@ h1 {
|
||||
<path d="m 1184.6228,1956.284 c -4.807,-8.0003 -6.8298,-42.7561 -6.0684,-104.2674 0.7614,-61.5113 2.7093,-100.0139 5.8437,-115.508 3.1343,-15.4941 11.8445,-27.5329 26.1306,-36.117 30.2866,-18.198 54.7006,-11.868 73.242,18.99 5.4937,9.1432 8.145,43.3269 7.9537,102.5512 -0.081,52.9359 -1.4296,89.5231 -4.0464,109.7617 -2.276,16.9226 -11.1284,30.0192 -26.5575,39.29 -33.1439,19.9148 -58.643,15.0146 -76.4977,-14.7005 z" />
|
||||
<path d="m 1773.3127,1737.6952 c -9.0153,-2.4157 -34.6139,-26.0118 -76.7955,-70.7882 -42.1816,-44.7764 -67.5266,-73.826 -76.035,-87.1489 -8.5084,-13.3228 -10.6057,-28.0334 -6.2922,-44.1323 9.145,-34.1293 31.1041,-46.5353 65.8774,-37.2179 10.3033,2.7609 35.9565,25.5088 76.9595,68.2441 36.7142,38.1352 61.1596,65.3907 73.3362,81.7668 10.1182,13.7541 12.8479,29.3245 8.1892,46.7113 -10.0077,37.3492 -31.7542,51.5375 -65.2396,42.5651 z" />
|
||||
</svg>
|
||||
<h3>Freudenreiche</h3>
|
||||
<h3>{labels.joyful}</h3>
|
||||
</button>
|
||||
|
||||
<button
|
||||
@@ -1161,12 +1266,12 @@ h1 {
|
||||
onclick={() => selectMystery('schmerzhaften')}
|
||||
>
|
||||
{#if todaysMystery === 'schmerzhaften'}
|
||||
<span class="today-badge">Heutige</span>
|
||||
<span class="today-badge">{labels.today}</span>
|
||||
{/if}
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg viewBox="0 0 512 512" ><path d="M255.094 24.875c-16.73 9.388-34.47 42.043-41.688 59.47-14.608-2.407-28.87-3.664-42.562-3.75-11.446-.074-22.49.68-33.03 2.218-16.34-8.284-34.766-29.065-42.626-50-9.324 15.704-9.558 42.313-5.782 64.593-19.443 9.72-35.107 23.633-45.53 41.688-7.262 12.577-11.5 26.34-12.97 40.875 13.294-25.904 35-46.957 65.656-54.345-34.99 31.783-59.85 87.186-51.5 129.406-1.2 22.87-9.48 37.647-24.75 44.595 16.335 4.59 35.497 3.343 49.438-1.28 24.94 34.82 60.818 67.882 105.063 94.342-6.952 17.613-16.677 49.21-16.47 66.032 10.846-13.178 37.433-40.585 61.72-42.783 23.656 10.27 47.35 17.698 70.312 22.313 12.423 17.25 12.895 38.867 7.375 53.594 16.402-9.2 33.82-33.187 39.938-48 47.1 1.423 88.046-10.534 114.718-35.563 17.536 5.52 30.744 15.707 39.813 30.5.243-19.578-8.05-44.353-18-60.31 13.42-28.268 12.786-61.81.5-96.158l.405.47c9.976-11.804 18.304-33.19 18.063-52.907-8.535 10.373-20.727 15.14-36.75 14.188-13.56-22.597-31.81-44.812-54.032-65.375 10.56-19.27 30.402-36.43 44.156-47.97-18.985-5.337-67.794 5.2-80.78 17.782l5.906 8.5c5.637 11.99 9.503 24.423 11.093 37.063-26.323-37.275-70.72-74.72-114.905-95.625-15.894-25.424-19.322-56.118-12.78-73.563zm-82.875 97.063c1.13-.015 2.258-.008 3.405 0 31.56.2 68.888 8.842 107 25.656-8.8 20.095-14.74 44.482-10 61.344 13.33-18.637 37.313-34.22 55.406-37.5 55.904 34.315 96.215 78.718 111.658 118.718l.093.22c16.088 37.88 13.36 85.186-26.56 117.312 4.79-11.41 7.986-23.828 9.5-36.438-14.078 10.012-33.524 15.304-56.314 15.97-1.954-17.242-9.117-52.874-22.28-65.72 1.565 16.122-8.11 46.272-26.22 61.063-31.916-6.495-66.794-19.67-101.03-39.438-9.538-5.506-18.65-11.307-27.314-17.344-3.444-23.614 7.842-53.562 20.563-64.03-18.967-.234-46.71 22.156-59.313 32.75-40.974-38.47-64.14-81.11-61.25-115 16.275-1.708 36.144.927 51.72 8-3.92-15.382-18.553-31.733-34.407-44.344 14.757-13.826 37.7-20.852 65.344-21.22z"/></svg>
|
||||
</svg>
|
||||
<h3>Schmerzhaften</h3>
|
||||
<h3>{labels.sorrowful}</h3>
|
||||
</button>
|
||||
|
||||
<button
|
||||
@@ -1175,7 +1280,7 @@ h1 {
|
||||
onclick={() => selectMystery('glorreichen')}
|
||||
>
|
||||
{#if todaysMystery === 'glorreichen'}
|
||||
<span class="today-badge">Heutige</span>
|
||||
<span class="today-badge">{labels.today}</span>
|
||||
{/if}
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="-10 0 2060 2048">
|
||||
<path
|
||||
@@ -1188,7 +1293,7 @@ q-32 -54 -32 -124q0 -121 75 -121q19 0 77 36v-20q0 -27 -31 -151q-27 43 -59 43q-19
|
||||
q0 141 342 175q132 13 150 13h726q-9 0 55 -5q437 -34 437 -183q0 -88 -105 -111l40 -215q-2 0 -5 1q-31 0 -31 -51q0 -32 16 -62q19 -34 48 -39zM1518 888q0 34 -30 34q-34 0 -34 -34t32 -34t32 34zM1099 880q0 30 -22 51t-52 21q-29 0 -51.5 -21.5t-22.5 -50.5
|
||||
q0 -31 22 -54.5t52 -23.5q31 0 52.5 23.5t21.5 54.5zM596 888q0 34 -34 34q-30 0 -30 -34t32 -34t32 34z" />
|
||||
</svg>
|
||||
<h3>Glorreichen</h3>
|
||||
<h3>{labels.glorious}</h3>
|
||||
</button>
|
||||
|
||||
{#if includeLuminous}
|
||||
@@ -1198,7 +1303,7 @@ q0 -31 22 -54.5t52 -23.5q31 0 52.5 23.5t21.5 54.5zM596 888q0 34 -34 34q-30 0 -30
|
||||
onclick={() => selectMystery('lichtreichen')}
|
||||
>
|
||||
{#if todaysMystery === 'lichtreichen'}
|
||||
<span class="today-badge">Heutige</span>
|
||||
<span class="today-badge">{labels.today}</span>
|
||||
{/if}
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="-10 0 2156 2048">
|
||||
<path
|
||||
@@ -1208,19 +1313,19 @@ t64.5 -39.5h604q33 -94 126 -375q19 -62 61 -184q29 -73 108 -73t110 83q4 11 58 177
|
||||
l536 389l-209 -629zM1671 934l-370 267l150 436l-378 -271l-371 271q8 -34 15 -68q10 -41 28 -62q46 -53 144 -120q80 -53 159 -106l296 210l-112 -344l299 -213h140z" />
|
||||
</svg>
|
||||
|
||||
<h3>Lichtreichen</h3>
|
||||
<h3>{labels.luminous}</h3>
|
||||
</button>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<!-- Toggle Controls & Streak Counter -->
|
||||
<div class="controls-row">
|
||||
<StreakCounter streakData={data.streakData} />
|
||||
<StreakCounter streakData={data.streakData} lang={data.lang} />
|
||||
<div class="toggle-controls">
|
||||
<!-- Luminous Mysteries Toggle -->
|
||||
<Toggle
|
||||
bind:checked={includeLuminous}
|
||||
label="Lichtreiche Geheimnisse einbeziehen"
|
||||
label={labels.includeLuminous}
|
||||
on:change={handleToggleChange}
|
||||
/>
|
||||
|
||||
@@ -1318,14 +1423,14 @@ l536 389l-209 -629zM1671 934l-370 267l150 436l-378 -271l-371 271q8 -34 15 -68q10
|
||||
bind:this={sectionElements.cross}
|
||||
data-section="cross"
|
||||
>
|
||||
<h2>Anfang</h2>
|
||||
<h3>♱ Das Kreuzzeichen</h3>
|
||||
<h2>{labels.beginning}</h2>
|
||||
<h3>{labels.signOfCross}</h3>
|
||||
<Kreuzzeichen />
|
||||
<h3>Credo</h3>
|
||||
<Credo />
|
||||
<div class="footnotes-section">
|
||||
<p><span class="symbol">♱</span>Hier das Kreuzzeichen machen</p>
|
||||
<p><span class="symbol">⚬</span>Hier den Kopf senken</p>
|
||||
<p><span class="symbol">♱</span>{labels.footnoteSign}</p>
|
||||
<p><span class="symbol">⚬</span>{labels.footnoteBow}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1335,7 +1440,7 @@ l536 389l-209 -629zM1671 934l-370 267l150 436l-378 -271l-371 271q8 -34 15 -68q10
|
||||
bind:this={sectionElements.lbead1}
|
||||
data-section="lbead1"
|
||||
>
|
||||
<h3>Vater unser</h3>
|
||||
<h3>{labels.ourFather}</h3>
|
||||
<Paternoster />
|
||||
</div>
|
||||
|
||||
@@ -1345,10 +1450,11 @@ l536 389l-209 -629zM1671 934l-370 267l150 436l-378 -271l-371 271q8 -34 15 -68q10
|
||||
bind:this={sectionElements.start1}
|
||||
data-section="start1"
|
||||
>
|
||||
<h3>Ave Maria: Glaube</h3>
|
||||
<h3>{labels.hailMary}: {labels.faith}</h3>
|
||||
<AveMaria
|
||||
mysteryLatin="Jesus, qui adáugeat nobis fidem"
|
||||
mystery="Jesus, der in uns den Glauben vermehre"
|
||||
mysteryEnglish="Jesus, who may increase our faith"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -1358,10 +1464,11 @@ l536 389l-209 -629zM1671 934l-370 267l150 436l-378 -271l-371 271q8 -34 15 -68q10
|
||||
bind:this={sectionElements.start2}
|
||||
data-section="start2"
|
||||
>
|
||||
<h3>Ave Maria: Hoffnung</h3>
|
||||
<h3>{labels.hailMary}: {labels.hope}</h3>
|
||||
<AveMaria
|
||||
mysteryLatin="Jesus, qui corróboret nobis spem"
|
||||
mystery="Jesus, der in uns die Hoffnung stärke"
|
||||
mysteryEnglish="Jesus, who may strengthen our hope"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -1371,10 +1478,11 @@ l536 389l-209 -629zM1671 934l-370 267l150 436l-378 -271l-371 271q8 -34 15 -68q10
|
||||
bind:this={sectionElements.start3}
|
||||
data-section="start3"
|
||||
>
|
||||
<h3>Ave Maria: Liebe</h3>
|
||||
<h3>{labels.hailMary}: {labels.love}</h3>
|
||||
<AveMaria
|
||||
mysteryLatin="Jesus, qui perficiat in nobis caritátem"
|
||||
mystery="Jesus, der in uns die Liebe entzünde"
|
||||
mysteryEnglish="Jesus, who may kindle our love"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -1384,9 +1492,9 @@ l536 389l-209 -629zM1671 934l-370 267l150 436l-378 -271l-371 271q8 -34 15 -68q10
|
||||
bind:this={sectionElements.lbead2}
|
||||
data-section="lbead2"
|
||||
>
|
||||
<h3>Gloria Patri</h3>
|
||||
<h3>{labels.gloriaPatri}</h3>
|
||||
<GloriaPatri />
|
||||
<h3>Vater unser</h3>
|
||||
<h3>{labels.ourFather}</h3>
|
||||
<Paternoster />
|
||||
</div>
|
||||
|
||||
@@ -1398,13 +1506,14 @@ l536 389l-209 -629zM1671 934l-370 267l150 436l-378 -271l-371 271q8 -34 15 -68q10
|
||||
bind:this={sectionElements[`secret${decadeNum}`]}
|
||||
data-section={`secret${decadeNum}`}
|
||||
>
|
||||
<h2>{decadeNum}. Gesätz: {currentMysteryTitles[decadeNum - 1]}</h2>
|
||||
<h2>{decadeNum}. {labels.decade}: {currentMysteryTitles[decadeNum - 1]}</h2>
|
||||
|
||||
<!-- Mystery description with Bible reference button -->
|
||||
<h3>Ave Maria <span class="repeat-count">(10×)</span></h3>
|
||||
<h3>{labels.hailMary} <span class="repeat-count">(10×)</span></h3>
|
||||
<AveMaria
|
||||
mysteryLatin={currentMysteriesLatin[decadeNum - 1]}
|
||||
mystery={currentMysteries[decadeNum - 1]}
|
||||
mysteryEnglish={currentMysteriesEnglish[decadeNum - 1]}
|
||||
/>
|
||||
|
||||
<!-- Bible reference and counter buttons -->
|
||||
@@ -1415,7 +1524,7 @@ l536 389l-209 -629zM1671 934l-370 267l150 436l-378 -271l-371 271q8 -34 15 -68q10
|
||||
<button
|
||||
class="bible-reference-button"
|
||||
onclick={() => handleCitationClick(description.reference, description.title, description.verseData)}
|
||||
aria-label="Bibelstelle anzeigen"
|
||||
aria-label={labels.showBibleVerse}
|
||||
>
|
||||
📖
|
||||
</button>
|
||||
@@ -1431,13 +1540,13 @@ l536 389l-209 -629zM1671 934l-370 267l150 436l-378 -271l-371 271q8 -34 15 -68q10
|
||||
bind:this={sectionElements[`secret${decadeNum}_transition`]}
|
||||
data-section={`secret${decadeNum}_transition`}
|
||||
>
|
||||
<h3>Gloria Patri</h3>
|
||||
<h3>{labels.gloriaPatri}</h3>
|
||||
<GloriaPatri />
|
||||
|
||||
<h3>Das Fatima Gebet <span class="repeat-count">(optional)</span></h3>
|
||||
<h3>{labels.fatimaPrayer} <span class="repeat-count">({labels.optional})</span></h3>
|
||||
<FatimaGebet />
|
||||
|
||||
<h3>Vater unser</h3>
|
||||
<h3>{labels.ourFather}</h3>
|
||||
<Paternoster />
|
||||
</div>
|
||||
{/if}
|
||||
@@ -1449,23 +1558,23 @@ l536 389l-209 -629zM1671 934l-370 267l150 436l-378 -271l-371 271q8 -34 15 -68q10
|
||||
bind:this={sectionElements.final_transition}
|
||||
data-section="final_transition"
|
||||
>
|
||||
<h2>Abschluss</h2>
|
||||
<h2>{labels.conclusion}</h2>
|
||||
|
||||
<h3>Gloria Patri</h3>
|
||||
<h3>{labels.gloriaPatri}</h3>
|
||||
<GloriaPatri />
|
||||
|
||||
<h3>Das Fatima Gebet <span class="repeat-count">(optional)</span></h3>
|
||||
<h3>{labels.fatimaPrayer} <span class="repeat-count">({labels.optional})</span></h3>
|
||||
<FatimaGebet />
|
||||
|
||||
<h3>Salve Regina</h3>
|
||||
<SalveRegina />
|
||||
|
||||
<h3>Schlussgebet</h3>
|
||||
<h3>{labels.finalPrayer}</h3>
|
||||
<RosaryFinalPrayer />
|
||||
|
||||
<h3 style="text-align: center; font-size: 2.5rem; margin-top: 2rem;">♱</h3>
|
||||
<div class="footnotes-section">
|
||||
<p><span class="symbol">♱</span>Hier das Kreuzzeichen machen</p>
|
||||
<p><span class="symbol">♱</span>{labels.footnoteSign}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -2,13 +2,19 @@
|
||||
import { createLanguageContext } from "$lib/contexts/languageContext.js";
|
||||
import LanguageToggle from "$lib/components/LanguageToggle.svelte";
|
||||
import Prayer from '$lib/components/prayers/Prayer.svelte';
|
||||
import Angelus from "$lib/components/prayers/Angelus.svelte";
|
||||
import AveMaria from '$lib/components/prayers/AveMaria.svelte';
|
||||
import "$lib/css/christ.css";
|
||||
import "$lib/css/rosenkranz.css";
|
||||
import "$lib/css/christ.css";
|
||||
import "$lib/css/rosenkranz.css";
|
||||
|
||||
let { data } = $props();
|
||||
|
||||
// Create language context for prayer components
|
||||
createLanguageContext();
|
||||
const langContext = createLanguageContext({ urlLang: data.lang });
|
||||
|
||||
// Update lang store when data.lang changes (e.g., after navigation)
|
||||
$effect(() => {
|
||||
langContext.lang.set(data.lang);
|
||||
});
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
|
||||
Reference in New Issue
Block a user