Modules » Questionnaire » Questions module 2

← Retour
Aller à un autre module ou thème 🏠 Accueil
Largeur
Mode de lecture
Couleurs

Questions module 2

Notre communion avec Dieu

Que nous enseigne Jean 14:6 concernant le thème « Notre communion avec Dieu » ?

Quelle vérité principale ressort de Jean 14:21 sur « Notre communion avec Dieu » ?

Que révèle Jérémie 29:12 – 13 concernant « Notre communion avec Dieu » ?

Quel lien peux-tu établir entre Jean 14:10 – 12 et le thème « Notre communion avec Dieu » ?

Quelle application pour la vie du croyant peux-tu tirer de 1 Jean 5:14 ?

Quel enseignement de Matthieu 21:21 – 22 mérite d’être retenu concernant « Notre communion avec Dieu » ?

Comment Ésaïe 55:6 permet-il de mieux comprendre « Notre communion avec Dieu » ?

La prière

Que nous enseigne Matthieu 6:5 – 13 concernant le thème « La prière » ?

Quelle vérité principale ressort de 2 Corinthiens 5:17 – 18 sur « La prière » ?

Que révèle Philippiens 4:6 concernant « La prière » ?

Quel lien peux-tu établir entre 1 Pierre 3:7 et le thème « La prière » ?

Quelle application pour la vie du croyant peux-tu tirer de 1 Timothée 2:1 ?

Quel enseignement de Matthieu 18:19 – 20 mérite d’être retenu concernant « La prière » ?

Comment 1 Thessaloniciens 5:17 permet-il de mieux comprendre « La prière » ?

Lecture et méditation de la Parole de Dieu

Que nous enseigne Jean 1:1 concernant le thème « Lecture et méditation de la Parole de Dieu » ?

Quelle vérité principale ressort de Matthieu 3:17 sur « Lecture et méditation de la Parole de Dieu » ?

Que révèle Psaumes 12:6 concernant « Lecture et méditation de la Parole de Dieu » ?

Quel lien peux-tu établir entre Colossiens 3:16 et le thème « Lecture et méditation de la Parole de Dieu » ?

Quelle application pour la vie du croyant peux-tu tirer de Romains 10:17 ?

Quel enseignement de Matthieu 24:32 mérite d’être retenu concernant « Lecture et méditation de la Parole de Dieu » ?

Comment 1 Corinthiens 4:20 permet-il de mieux comprendre « Lecture et méditation de la Parole de Dieu » ?

La sanctification

Que nous enseigne Actes 26:18 concernant le thème « La sanctification » ?

Quelle vérité principale ressort de Jean 17:17 sur « La sanctification » ?

Que révèle 1 Corinthiens 6:10 – 11 concernant « La sanctification » ?

Quel lien peux-tu établir entre 1 Thessaloniciens 4:3 – 7 et le thème « La sanctification » ?

Quelle application pour la vie du croyant peux-tu tirer de 1 Thessaloniciens 5:23 ?

Quel enseignement de 2 Thessaloniciens 2:13 mérite d’être retenu concernant « La sanctification » ?

Comment 1 Timothée 4:5 permet-il de mieux comprendre « La sanctification » ?

La persévérance

Que nous enseigne Luc 21:19 concernant le thème « La persévérance » ?

Quelle vérité principale ressort de Jacques 1:25 sur « La persévérance » ?

Que révèle Matthieu 10:22 concernant « La persévérance » ?

Quel lien peux-tu établir entre Luc 8:15 et le thème « La persévérance » ?

Quelle application pour la vie du croyant peux-tu tirer de Luc 22:28 ?

Quel enseignement de Actes 1:14 mérite d’être retenu concernant « La persévérance » ?

Comment Actes 2:42 permet-il de mieux comprendre « La persévérance » ?

Le combat spirituel

Que nous enseigne Matthieu 6:34 concernant le thème « Le combat spirituel » ?

Quelle vérité principale ressort de Éphésiens 6:10 – 18 sur « Le combat spirituel » ?

Que révèle Matthieu 5:38 – 48 concernant « Le combat spirituel » ?

Quel lien peux-tu établir entre Deutéronome 11:26 – 28 et le thème « Le combat spirituel » ?

Quelle application pour la vie du croyant peux-tu tirer de Proverbes 4:23 – 27 ?

Quel enseignement de 1 Corinthiens 13:1 – 10 mérite d’être retenu concernant « Le combat spirituel » ?

Comment Marc 16:16 – 19 permet-il de mieux comprendre « Le combat spirituel » ?

« Retour au module « Questionnaire »

« Retour à l'ensemble des modules de formation

'; var nomFichier = titre.toLowerCase() .normalize('NFD').replace(/[\u0300-\u036f]/g, '') .replace(/[^a-z0-9]+/g, '-').replace(/(^-|-$)/g, '') || 'theme-biblique'; var blob = new Blob([html], { type: 'text/html;charset=utf-8' }); var lien = document.createElement('a'); lien.href = URL.createObjectURL(blob); lien.download = nomFichier + '.html'; document.body.appendChild(lien); lien.click(); document.body.removeChild(lien); URL.revokeObjectURL(lien.href); }); } // Menu déroulant "Section" : défilement fluide vers le titre choisi. var selectSection = document.getElementById('fb-select-section'); if (selectSection) { selectSection.addEventListener('change', function () { if (!this.value) return; var cible = document.getElementById(this.value); if (cible) cible.scrollIntoView({ behavior: 'smooth', block: 'start' }); }); } // --- Lecture audio (synthèse vocale du navigateur) --- var conteneurAudio = document.getElementById('fb-lecture-audio'); if (conteneurAudio) { if (!('speechSynthesis' in window)) { conteneurAudio.style.display = 'none'; document.querySelectorAll('.fb-lire-passage').forEach(function (b) { b.style.display = 'none'; }); } else { (function () { var synth = window.speechSynthesis; var selectLangue = document.getElementById('fb-langue-voix'); var selectVoix = document.getElementById('fb-select-voix'); var boutonLireTout = document.getElementById('fb-lire-tout'); var boutonLireSelection = document.getElementById('fb-lire-selection'); // --- Afficher/masquer les cases et boutons de lecture par verset --- var boutonActiverVoix = document.getElementById('fb-activer-voix'); var conteneurPage = document.querySelector('.fb-conteneur'); function majBoutonActiverVoix(actif) { if (!boutonActiverVoix) return; boutonActiverVoix.textContent = actif ? '🎙️ Désactiver voix' : '🎙️ Activer voix'; conteneurPage.classList.toggle('fb-voix-active', actif); } if (boutonActiverVoix && conteneurPage) { majBoutonActiverVoix(localStorage.getItem('fb_voix_active') === '1'); boutonActiverVoix.addEventListener('click', function () { var actif = !conteneurPage.classList.contains('fb-voix-active'); localStorage.setItem('fb_voix_active', actif ? '1' : '0'); majBoutonActiverVoix(actif); if (!actif) majBoutonSelection(); }); } var boutonPause = document.getElementById('fb-pause-lecture'); var boutonStop = document.getElementById('fb-stop-lecture'); var voixDisponibles = []; var LIRE_TITRES = conteneurAudio.dataset.titresDefaut === '1'; var PAUSES = window.FB_PAUSES || {}; var PAUSE_VERSET_AVANT = parseFloat(PAUSES.verset_avant) || 0; var PAUSE_VERSET_APRES = parseFloat(PAUSES.verset_apres) || 0; var PAUSE_TITRE_GROUPE_AVANT = parseFloat(PAUSES.titre_groupe_avant) || 0; var PAUSE_TITRE_GROUPE = parseFloat(PAUSES.titre_groupe) || 0; var PAUSE_SOUS_TITRE_AVANT = parseFloat(PAUSES.sous_titre_avant) || 0; var PAUSE_SOUS_TITRE = parseFloat(PAUSES.sous_titre) || 0; var PAUSE_REFERENCE_AVANT = parseFloat(PAUSES.reference_avant) || 0; var PAUSE_REFERENCE_APRES = parseFloat(PAUSES.reference_apres) || 0; var PAUSE_APRES_NUMERO = parseFloat(PAUSES.numero_apres) || 0; var PAUSE_APRES_NUMERO_ACTIF = !!PAUSES.numero_actif; var BOUCLE_DISPONIBLE = !!PAUSES.boucle_active; var SURBRILLANCE_ACTIVE = !!PAUSES.surbrillance; var DEFAUT_LANGUE = conteneurAudio.dataset.langueDefaut || ''; var DEFAUT_NOM = conteneurAudio.dataset.nomDefaut || ''; var DEFAUT_VITESSE = parseFloat(conteneurAudio.dataset.vitesseDefaut); if (isNaN(DEFAUT_VITESSE)) DEFAUT_VITESSE = 1; var DEFAUT_TIMBRE = parseFloat(conteneurAudio.dataset.timbreDefaut); if (isNaN(DEFAUT_TIMBRE)) DEFAUT_TIMBRE = 1; var DEFAUT_VOLUME = parseFloat(conteneurAudio.dataset.volumeDefaut); if (isNaN(DEFAUT_VOLUME)) DEFAUT_VOLUME = 1; // --- Case "Lire les références" (activable côté internaute, mémorisée) --- var caseLireReferences = document.getElementById('fb-lire-references'); var LIRE_REFERENCES = false; if (caseLireReferences) { var refSauvee = localStorage.getItem('fb_lire_references'); LIRE_REFERENCES = refSauvee !== null ? (refSauvee === '1') : (conteneurAudio.dataset.referenceDefaut === '1'); caseLireReferences.checked = LIRE_REFERENCES; caseLireReferences.addEventListener('change', function () { LIRE_REFERENCES = this.checked; localStorage.setItem('fb_lire_references', LIRE_REFERENCES ? '1' : '0'); }); } // --- Case "Lire les numéros de versets" (activable côté internaute, mémorisée) --- var caseLireNumeros = document.getElementById('fb-lire-numeros'); var LIRE_NUMEROS = false; if (caseLireNumeros) { var numerosSauve = localStorage.getItem('fb_lire_numeros'); LIRE_NUMEROS = numerosSauve !== null ? (numerosSauve === '1') : (conteneurAudio.dataset.numerosDefaut === '1'); caseLireNumeros.checked = LIRE_NUMEROS; caseLireNumeros.addEventListener('change', function () { LIRE_NUMEROS = this.checked; localStorage.setItem('fb_lire_numeros', LIRE_NUMEROS ? '1' : '0'); }); } // --- Case "Lire les titres et sous-titres" (activable côté internaute, mémorisée) --- var caseLireTitres = document.getElementById('fb-lire-titres'); if (caseLireTitres) { var titresSauve = localStorage.getItem('fb_lire_titres'); LIRE_TITRES = titresSauve !== null ? (titresSauve === '1') : (conteneurAudio.dataset.titresDefaut === '1'); caseLireTitres.checked = LIRE_TITRES; caseLireTitres.addEventListener('change', function () { LIRE_TITRES = this.checked; localStorage.setItem('fb_lire_titres', LIRE_TITRES ? '1' : '0'); }); } /** * Convertit une référence affichée (ex. "Jean 3:16", "Jean 3:16–18", * "Jean 3:16–4:2") en texte à lire à voix haute (ex. "Jean chapitre 3 * verset 16", "Jean chapitre 3 verset 16 à 18", * "Jean chapitre 3 verset 16 à chapitre 4 verset 2"). On se repère avec * les ":" pour séparer chapitre et verset. */ function referenceParlee(texteCitation) { var m = texteCitation.trim().match(/^(.+?)\s+(\d+):(\d+)(?:\s*[–-]\s*(?:(\d+):)?(\d+))?$/); if (!m) return texteCitation; var livre = m[1], chapDebut = m[2], versDebut = m[3], chapFin = m[4], versFin = m[5]; if (!versFin) return livre + ' chapitre ' + chapDebut + ' verset ' + versDebut; if (chapFin) return livre + ' chapitre ' + chapDebut + ' verset ' + versDebut + ' à chapitre ' + chapFin + ' verset ' + versFin; return livre + ' chapitre ' + chapDebut + ' verset ' + versDebut + ' à ' + versFin; } function peuplerLangues() { voixDisponibles = synth.getVoices(); if (!voixDisponibles.length) return; var langues = {}; voixDisponibles.forEach(function (v) { langues[v.lang] = true; }); var langueSauvee = localStorage.getItem('fb_langue_voix'); selectLangue.innerHTML = ''; Object.keys(langues).sort().forEach(function (lang) { var opt = document.createElement('option'); opt.value = lang; opt.textContent = lang; selectLangue.appendChild(opt); }); if (langueSauvee && langues[langueSauvee]) { selectLangue.value = langueSauvee; } else if (DEFAUT_LANGUE && langues[DEFAUT_LANGUE]) { selectLangue.value = DEFAUT_LANGUE; } else { var fr = Object.keys(langues).find(function (l) { return l.toLowerCase().indexOf('fr') === 0; }); if (fr) selectLangue.value = fr; } peuplerVoix(); } function peuplerVoix() { var langueChoisie = selectLangue.value; var voixSauvee = localStorage.getItem('fb_voix_nom'); selectVoix.innerHTML = ''; voixDisponibles .filter(function (v) { return v.lang === langueChoisie; }) .forEach(function (v) { var opt = document.createElement('option'); opt.value = v.name; opt.textContent = v.name; selectVoix.appendChild(opt); }); var options = Array.prototype.slice.call(selectVoix.options); if (voixSauvee && options.some(function (o) { return o.value === voixSauvee; })) { selectVoix.value = voixSauvee; } else if (!voixSauvee && DEFAUT_NOM && options.some(function (o) { return o.value === DEFAUT_NOM; })) { selectVoix.value = DEFAUT_NOM; } } selectLangue.addEventListener('change', function () { localStorage.setItem('fb_langue_voix', this.value); peuplerVoix(); Lecteur.appliquerEnDirect(); }); selectVoix.addEventListener('change', function () { localStorage.setItem('fb_voix_nom', this.value); Lecteur.appliquerEnDirect(); }); synth.onvoiceschanged = peuplerLangues; peuplerLangues(); // --- Réglages avancés : vitesse, timbre, volume (curseur + saisie exacte) --- var curseurVitesse = document.getElementById('fb-curseur-vitesse'); var curseurTimbre = document.getElementById('fb-curseur-timbre'); var curseurVolume = document.getElementById('fb-curseur-volume'); var saisieVitesse = document.getElementById('fb-saisie-vitesse'); var saisieTimbre = document.getElementById('fb-saisie-timbre'); var saisieVolume = document.getElementById('fb-saisie-volume'); var boutonReglages = document.getElementById('fb-ouvrir-reglages-audio'); var panneauReglages = document.getElementById('fb-reglages-audio'); var minuteurLive = null; if (boutonReglages && panneauReglages) { boutonReglages.addEventListener('click', function () { panneauReglages.hidden = !panneauReglages.hidden; }); } // Applique en direct les changements de vitesse/timbre/volume pendant // une lecture en cours, sans avoir besoin d'arrêter puis de relancer. function planifierMiseAJourLive() { clearTimeout(minuteurLive); minuteurLive = setTimeout(function () { Lecteur.appliquerEnDirect(); }, 200); } function relierCurseurEtSaisie(curseur, saisie, cle, defaut, arrondi) { if (!curseur) return; var valeurInitiale = localStorage.getItem(cle); valeurInitiale = (valeurInitiale !== null && valeurInitiale !== '') ? parseFloat(valeurInitiale) : defaut; curseur.value = valeurInitiale; if (saisie) saisie.value = (arrondi ? Math.round(valeurInitiale * 100) : valeurInitiale).toString().replace('.', ','); curseur.addEventListener('input', function () { if (saisie) saisie.value = (arrondi ? Math.round(this.value * 100) : parseFloat(this.value)).toString().replace('.', ','); localStorage.setItem(cle, this.value); planifierMiseAJourLive(); }); if (saisie) { saisie.addEventListener('change', function () { var brut = this.value.replace(',', '.').trim(); var val = parseFloat(brut); if (isNaN(val)) { val = parseFloat(curseur.value); } val = Math.max(parseFloat(curseur.min), Math.min(parseFloat(curseur.max), val)); curseur.value = val; this.value = (arrondi ? Math.round(val * 100) : val).toString().replace('.', ','); localStorage.setItem(cle, val); planifierMiseAJourLive(); }); } } relierCurseurEtSaisie(curseurVitesse, saisieVitesse, 'fb_voix_vitesse', DEFAUT_VITESSE, false); relierCurseurEtSaisie(curseurTimbre, saisieTimbre, 'fb_voix_timbre', DEFAUT_TIMBRE, false); relierCurseurEtSaisie(curseurVolume, saisieVolume, 'fb_voix_volume', DEFAUT_VOLUME, false); function appliquerParametres(u) { var voix = voixDisponibles.find(function (v) { return v.name === selectVoix.value; }); if (voix) { u.voice = voix; u.lang = voix.lang; } else if (selectLangue.value) { u.lang = selectLangue.value; } if (curseurVitesse) u.rate = parseFloat(curseurVitesse.value); if (curseurTimbre) u.pitch = parseFloat(curseurTimbre.value); if (curseurVolume) u.volume = parseFloat(curseurVolume.value); } // --- Lecteur : gère une file de segments {texte, pause} à lire, avec // pause/arrêt, silence configurable après chaque segment, et application // en direct des réglages (vitesse/timbre/volume/voix) sans avoir à // arrêter puis relancer manuellement la lecture. --- var Lecteur = (function () { var file = []; var fileOrigine = []; var indexCourant = 0; var segmentCourant = { texte: '', pauseAvant: 0, pauseApres: 0, element: null }; var positionCourante = 0; var actif = false; var enBoucle = false; var minuteurPause = null; var elementSurligne = null; function normaliser(item) { if (typeof item === 'string') return { texte: item, pauseAvant: 0, pauseApres: 0, element: null }; return { texte: item.texte, pauseAvant: item.pauseAvant || 0, pauseApres: item.pauseApres || (item.pause || 0), element: item.element || null }; } function surlignerElement(el) { if (elementSurligne && elementSurligne !== el) elementSurligne.classList.remove('fb-lecture-en-cours'); elementSurligne = el || null; if (SURBRILLANCE_ACTIVE && el) { el.classList.add('fb-lecture-en-cours'); el.scrollIntoView({ behavior: 'smooth', block: 'center' }); } } function retirerSurbrillance() { if (elementSurligne) elementSurligne.classList.remove('fb-lecture-en-cours'); elementSurligne = null; } function creerUtterance(texte) { var u = new SpeechSynthesisUtterance(texte); appliquerParametres(u); u.onboundary = function (e) { positionCourante = e.charIndex || 0; }; u.onend = function () { var silence = segmentCourant.pauseApres || 0; indexCourant++; positionCourante = 0; if (silence > 0) { minuteurPause = setTimeout(lireSuivant, silence * 1000); } else { lireSuivant(); } }; return u; } function parlerSegmentCourant() { if (SURBRILLANCE_ACTIVE) surlignerElement(segmentCourant.element); synth.speak(creerUtterance(segmentCourant.texte)); } function lireSuivant() { if (indexCourant >= file.length) { if (enBoucle && fileOrigine.length) { file = fileOrigine.slice(); indexCourant = 0; } else { actif = false; retirerSurbrillance(); reinitialiserBoutons(); return; } } segmentCourant = file[indexCourant]; var avant = segmentCourant.pauseAvant || 0; if (avant > 0) { minuteurPause = setTimeout(parlerSegmentCourant, avant * 1000); } else { parlerSegmentCourant(); } } return { lire: function (liste, boucle) { synth.cancel(); clearTimeout(minuteurPause); file = liste.map(normaliser).filter(function (s) { return s.texte && s.texte.trim(); }); fileOrigine = file.slice(); enBoucle = !!boucle; indexCourant = 0; positionCourante = 0; actif = true; boutonPause.style.display = ''; boutonStop.style.display = ''; boutonPause.textContent = '⏸ Pause'; lireSuivant(); }, estActif: function () { return actif; }, appliquerEnDirect: function () { if (!actif || !synth.speaking) return; var reste = segmentCourant.texte.slice(positionCourante).trim(); var nouvelleFile = reste ? [{ texte: reste, pauseAvant: 0, pauseApres: segmentCourant.pauseApres, element: segmentCourant.element }] : []; for (var k = indexCourant + 1; k < file.length; k++) nouvelleFile.push(file[k]); synth.cancel(); clearTimeout(minuteurPause); file = nouvelleFile; indexCourant = 0; positionCourante = 0; if (file.length) { segmentCourant = file[0]; parlerSegmentCourant(); } else if (enBoucle && fileOrigine.length) { file = fileOrigine.slice(); indexCourant = 0; lireSuivant(); } else { actif = false; retirerSurbrillance(); reinitialiserBoutons(); } }, arreter: function () { synth.cancel(); clearTimeout(minuteurPause); enBoucle = false; actif = false; retirerSurbrillance(); } }; })(); function texteVerset(p, inclureNumero) { var clone = p.cloneNode(true); var aSupprimer = inclureNumero ? '.fb-verset-case, .fb-lire-verset' : '.fb-ref, .fb-verset-case, .fb-lire-verset'; clone.querySelectorAll(aSupprimer).forEach(function (el) { el.remove(); }); return clone.textContent.trim(); } /** Construit le ou les segments TTS d'un seul verset. Quand le numéro est inclus et que le silence après les numéros est activé, le numéro est lu comme un segment à part, suivi d'un silence, avant le reste du texte du verset. */ function segmentsVerset(p, inclureNumero) { if (!inclureNumero || !PAUSE_APRES_NUMERO_ACTIF) { var texte = texteVerset(p, inclureNumero); return texte ? [{ texte: texte, pauseApres: 0 }] : []; } var refEl = p.querySelector('.fb-ref'); var numero = refEl ? refEl.textContent.trim() : ''; var reste = texteVerset(p, false); if (!numero) { return reste ? [{ texte: reste, pauseApres: 0 }] : []; } var segs = [{ texte: numero, pauseApres: PAUSE_APRES_NUMERO }]; if (reste) segs.push({ texte: reste, pauseApres: 0 }); return segs; } /** Construit les segments {texte, pause, element} d'un bloc de référence (citation + sous-titre + versets). Le numéro de chaque verset n'est lu que si LIRE_NUMEROS est actif ET que le bloc contient plusieurs versets (inutile de préciser le numéro s'il n'y en a qu'un seul). */ function segmentsDuBloc(bloc) { var segments = []; if (LIRE_REFERENCES) { var citation = bloc.querySelector('.fb-citation'); if (citation) segments.push({ texte: referenceParlee(citation.textContent), pauseAvant: PAUSE_REFERENCE_AVANT, pauseApres: PAUSE_REFERENCE_APRES, element: citation }); } if (LIRE_TITRES) { var sousTitre = bloc.querySelector('.fb-sous-titre'); if (sousTitre) segments.push({ texte: sousTitre.textContent.trim(), pauseAvant: PAUSE_SOUS_TITRE_AVANT, pauseApres: PAUSE_SOUS_TITRE, element: sousTitre }); } var versets = bloc.querySelectorAll('.fb-verset'); var inclureNumeros = LIRE_NUMEROS && versets.length > 1; versets.forEach(function (p) { var segsVerset = segmentsVerset(p, inclureNumeros); segsVerset.forEach(function (s, i) { segments.push({ texte: s.texte, pauseAvant: i === 0 ? PAUSE_VERSET_AVANT : 0, pauseApres: (i === segsVerset.length - 1) ? PAUSE_VERSET_APRES : s.pauseApres, element: p }); }); }); return segments; } function construireSegmentsTheme() { var segments = []; var elements = document.querySelectorAll('.fb-conteneur > .fb-titre-groupe, .fb-conteneur > .fb-carte'); elements.forEach(function (el) { if (el.classList.contains('fb-titre-groupe')) { if (LIRE_TITRES) { var t = el.textContent.trim(); if (t) segments.push({ texte: t, pauseAvant: PAUSE_TITRE_GROUPE_AVANT, pauseApres: PAUSE_TITRE_GROUPE, element: el }); } } else { segments = segments.concat(segmentsDuBloc(el)); } }); return segments; } function reinitialiserBoutons() { boutonPause.style.display = 'none'; boutonStop.style.display = 'none'; boutonPause.textContent = '⏸ Pause'; } var caseBoucle = document.getElementById('fb-lire-boucle'); function estEnBoucle() { return !!(caseBoucle && caseBoucle.checked); } if (caseBoucle) { caseBoucle.checked = localStorage.getItem('fb_lecture_boucle') === '1'; caseBoucle.addEventListener('change', function () { localStorage.setItem('fb_lecture_boucle', this.checked ? '1' : '0'); }); } document.querySelectorAll('.fb-lire-passage').forEach(function (bouton) { bouton.addEventListener('click', function () { var carte = bouton.closest('.fb-carte'); var segments = carte ? segmentsDuBloc(carte) : []; if (segments.length) Lecteur.lire(segments, estEnBoucle()); }); }); // --- Lecture d'un verset précis (un seul verset lu isolément : jamais son numéro) --- document.querySelectorAll('.fb-lire-verset').forEach(function (bouton) { bouton.addEventListener('click', function (e) { e.stopPropagation(); var p = bouton.closest('.fb-verset'); var texte = p ? texteVerset(p, false) : ''; if (!texte) return; Lecteur.lire([{ texte: texte, pauseAvant: PAUSE_VERSET_AVANT, pauseApres: PAUSE_VERSET_APRES, element: p }], estEnBoucle()); }); }); // --- Lecture d'une sélection de plusieurs versets (cases à cocher) --- function majBoutonSelection() { if (!boutonLireSelection) return; var cases = document.querySelectorAll('.fb-verset-case:checked'); if (cases.length > 0) { boutonLireSelection.style.display = ''; boutonLireSelection.textContent = '🔊 Lire la sélection (' + cases.length + ')'; } else { boutonLireSelection.style.display = 'none'; } } document.querySelectorAll('.fb-verset-case').forEach(function (c) { c.addEventListener('change', majBoutonSelection); }); majBoutonSelection(); if (boutonLireSelection) { boutonLireSelection.addEventListener('click', function () { var cases = document.querySelectorAll('.fb-verset-case:checked'); var inclureNumeros = LIRE_NUMEROS && cases.length > 1; var segments = []; cases.forEach(function (c) { var p = c.closest('.fb-verset'); if (!p) return; var segsVerset = segmentsVerset(p, inclureNumeros); segsVerset.forEach(function (s, i) { segments.push({ texte: s.texte, pauseAvant: i === 0 ? PAUSE_VERSET_AVANT : 0, pauseApres: (i === segsVerset.length - 1) ? PAUSE_VERSET_APRES : s.pauseApres, element: p }); }); }); if (segments.length) Lecteur.lire(segments, estEnBoucle()); }); } if (boutonLireTout) { boutonLireTout.addEventListener('click', function () { var segments = construireSegmentsTheme(); if (segments.length) Lecteur.lire(segments, estEnBoucle()); }); } if (boutonPause) { boutonPause.addEventListener('click', function () { if (synth.speaking && !synth.paused) { synth.pause(); boutonPause.textContent = '▶ Reprendre'; } else if (synth.paused) { synth.resume(); boutonPause.textContent = '⏸ Pause'; } }); } if (boutonStop) { boutonStop.addEventListener('click', function () { Lecteur.arreter(); reinitialiserBoutons(); }); } // --- Raccourcis clavier (Réglages → Clavier) --- var TOUCHES = window.FB_TOUCHES || {}; if (TOUCHES.actif) { document.addEventListener('keydown', function (e) { var cible = e.target; if (cible && (cible.tagName === 'INPUT' || cible.tagName === 'TEXTAREA' || cible.tagName === 'SELECT' || cible.isContentEditable)) return; if (e.ctrlKey || e.metaKey || e.altKey) return; var touche = e.key.toLowerCase(); if (touche === TOUCHES.lire_tout && boutonLireTout) { boutonLireTout.click(); e.preventDefault(); } else if (touche === TOUCHES.pause && boutonPause && boutonPause.style.display !== 'none') { boutonPause.click(); e.preventDefault(); } else if (touche === TOUCHES.stop && boutonStop && boutonStop.style.display !== 'none') { boutonStop.click(); e.preventDefault(); } else if (touche === TOUCHES.debut && boutonLireTout) { boutonLireTout.click(); e.preventDefault(); } else if (touche === TOUCHES.activer_voix && boutonActiverVoix) { boutonActiverVoix.click(); e.preventDefault(); } }); } })(); } } })();
Défiler vers le haut