LexiKo

Mots • Expressions • Phrases • Tests

Apprends le lexique essentiel en 90 jours



Préparation à l'examen civique 👨‍🎓🇫🇷

Logement, Location & Services au quotidien 🏠


🇫🇷 Le français de la vraie vie

Les mots et expressions essentiels pour vivre, travailler et être autonome en France.

🎁 Pack LIBERTÉ
Accédez aux 6 formations pendant 12 mois.
🚗 Code de la route
💼 Entretien d'embauche
🏛️ Démarches administratives — CAF, Ameli…
👨‍🎓🇫🇷 Examen civique
🏥 Chez le médecin & Santé
🏠 Logement & location

Un seul pack. 6 formations. 12 mois de liberté.

🤝 Notre partenaire — LumiLab. Des solutions numériques modernes pour le développement de votre entreprise.
Découvrir

© 2026 LumiLab — Tous droits réservés. Ce site utilise des cookies nécessaires à son bon fonctionnement ainsi qu’à l’amélioration de votre expérience utilisateur.

LexiKo

🔐

Vérification de l'accès

Choisissez votre cours, puis entrez l'e-mail utilisé lors du paiement

* Après le paiement, patientez quelques minutes le temps que votre e-mail soit ajouté à la base de données.

(function() { const CSV_URL = "https://docs.google.com/spreadsheets/d/1jFJ6LcrSNRNf7gV5dAvpRpFxNStk74eACdMbh-lY6PM/export?format=csv&gid=0"; const SECTION_URLS = { "сode de la route": "https://lexiko.fr/#codedelaroute", "entretien d'embauche": "https://lexiko.fr/#entretienembauche", "démarches administratives (CAF, Ameli)": "https://lexiko.fr/#demarches", "préparation à l'examen civique": "https://lexiko.fr/#civique", "chez le médecin & Santé": "https://lexiko.fr/#medecin", "logement": "https://lexiko.fr/#logement" }; function parseCSV(text) { const rows = []; let row = [], field = "", inQuotes = false; for (let i = 0; i < text.length; i++) { const c = text[i]; if (inQuotes) { if (c === '"') { if (text[i + 1] === '"') { field += '"'; i++; } else inQuotes = false; } else field += c; } else { if (c === '"') inQuotes = true; else if (c === ",") { row.push(field); field = ""; } else if (c === "\n" || c === "\r") { if (c === "\r" && text[i + 1] === "\n") i++; row.push(field); field = ""; if (row.some(v => v.trim() !== "")) rows.push(row); row = []; } else field += c; } } if (field.length || row.length) row.push(field); if (row.some(v => v.trim() !== "")) rows.push(row); return rows; } function init() { const btn = document.getElementById("submitBtn"); const msg = document.getElementById("msg"); const emailInput = document.getElementById("emailInput"); const courseSelect = document.getElementById("courseSelect"); if (!btn) { setTimeout(init, 200); return; } btn.addEventListener("click", async function() { const email = emailInput.value.trim().toLowerCase(); const course = courseSelect.value; if (!course) { msg.style.color = "#e24b4a"; msg.textContent = "Veuillez choisir un cours."; return; } if (!email) { msg.style.color = "#e24b4a"; msg.textContent = "Veuillez entrer votre e-mail."; return; } msg.style.color = "#888"; msg.textContent = "⏳ Connexion en cours..."; try { const res = await fetch(CSV_URL + "&nocache=" + Date.now()); if (!res.ok) throw new Error("Erreur du serveur"); const csvText = await res.text(); const table = parseCSV(csvText); const headers = table[0].map(h => h.trim()); const colIndex = headers.indexOf(course); if (colIndex === -1) { msg.style.color = "#e24b4a"; msg.textContent = "Erreur de configuration : colonne introuvable."; console.warn("Заголовки в таблице:", headers, "Искали:", course); return; } const emailsInColumn = table.slice(1) .map(r => (r[colIndex] || "").trim().toLowerCase()) .filter(v => v !== ""); if (emailsInColumn.includes(email)) { localStorage.setItem("access_" + course, "true"); msg.style.color = "#24aa52"; msg.textContent = "✅ Accès autorisé ! Redirection..."; setTimeout(() => { window.location.href = SECTION_URLS[course]; }, 800); } else { msg.style.color = "#e24b4a"; msg.textContent = "❌ E-mail introuvable pour ce cours."; } } catch (e) { msg.style.color = "#e24b4a"; msg.textContent = "⚠️ Problème de connexion. Vérifiez votre réseau."; } }); } init(); })();
🤝 Notre partenaire — LumiLab. Des solutions numériques modernes pour le développement de votre entreprise.
Découvrir

© 2026 LumiLab — Tous droits réservés. Ce site utilise des cookies nécessaires à son bon fonctionnement ainsi qu’à l’amélioration de votre expérience utilisateur.

Bienvenue dans le cours PRO de vocabulaire français pour le "Code de la Route" !

Grâce à notre programme, vous apprendrez le vocabulaire essentiel, les expressions courantes et des phrases complètes qui vous aideront à comprendre facilement les questions et les réponses de l’examen.
Nous vous souhaitons un apprentissage agréable et beaucoup de réussite pour votre examen !

🇫🇷
regarder dans le rétroviseur
Cliquer pour basculer
🇺🇦
подивитися в дзеркало
Cliquer pour basculer
1 / 10
var demoWords = [ {fr:"regarder dans le rétroviseur", uk:"подивитися в дзеркало", en:"look in the rear-view mirror"}, {fr:"contrôler", uk:"перевіряти", en:"check / control"}, {fr:"contrôler les rétroviseurs", uk:"перевірити дзеркала", en:"check the mirrors"}, {fr:"la file de circulation", uk:"смуга руху", en:"traffic lane"}, {fr:"reculer", uk:"рухатися назад (здавати назад)", en:"reverse / move backwards"}, {fr:"s'engager", uk:"в'їжджати; починати рух", en:"enter / join (traffic)"}, {fr:"l'intersection", uk:"перехрестя", en:"intersection"}, {fr:"le panneau STOP", uk:"знак STOP", en:"STOP sign"}, {fr:"la ligne d'arrêt", uk:"стоп-лінія", en:"stop line"}, {fr:"le carrefour", uk:"перехрестя", en:"crossroads / junction"} ]; var demoCur = 0; var currentLang = 'uk'; function demoSetLang(lang) { currentLang = lang; demoRender(); } function demoRender() { var w = demoWords[demoCur]; document.getElementById("demoFr").textContent = w.fr; if (currentLang === 'en') { document.getElementById("demoLangBack").textContent = "🇬🇧"; document.getElementById("demoUk").textContent = w.en; } else { document.getElementById("demoLangBack").textContent = "🇺🇦"; document.getElementById("demoUk").textContent = w.uk; } document.getElementById("demoProg").textContent = (demoCur + 1) + " / " + demoWords.length; var bar = document.getElementById("nativeBar"); if (bar) bar.value = demoCur + 1; var card = document.getElementById("demoCard"); if (card) card.classList.remove("flipped"); } function demoFlip() { var card = document.getElementById("demoCard"); if (card) card.classList.toggle("flipped"); } function demoNext() { if (demoCur >= demoWords.length - 1) { var cb = document.getElementById("cardsBlock"); var nb = document.getElementById("nativeBar"); var ls = document.getElementById("langSwitch"); if (cb) cb.remove(); if (nb) nb.remove(); if (ls) ls.remove(); var fb = document.getElementById("finishBlock"); if (fb) fb.style.display = "block"; return; } demoCur++; demoRender(); } function demoPrev() { if (demoCur > 0) { demoCur--; demoRender(); } } function demoSpeak() { var s = new SpeechSynthesisUtterance(demoWords[demoCur].fr); s.lang = "fr-FR"; s.rate = 0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); } demoRender();
🇫🇷
Chargement des mots...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var cardWords = [], cardCur = 0; var cardSheetID = "165kielWHsf9Mb4PU9f_CHCYzixM9UA8oaS2RvvOUQEs"; fetch("https://opensheet.elk.sh/" + cardSheetID + "/1") .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("fr-word").textContent = "Tableau vide"; return; } cardWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); cardRender(); }) .catch(function(){ document.getElementById("fr-word").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="fc_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(cardWords.length) cardRender(); }); }); function cardGetLang(){ var el = document.querySelector('input[name="fc_lang"]:checked'); return el ? el.value : "uk"; } function cardRender(){ var w = cardWords[cardCur]; var lang = cardGetLang(); var frEl = document.getElementById("fr-word"); frEl.classList.remove("fc-loading"); frEl.textContent = w.fr; document.getElementById("tr-word").textContent = lang === "en" ? w.en : w.uk; document.getElementById("tr-flag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("prog").textContent = (cardCur+1) + " / " + cardWords.length; document.getElementById("bar").style.width = Math.round((cardCur+1)/cardWords.length*100) + "%"; document.getElementById("card").classList.remove("flipped"); } function cardFlip(){ document.getElementById("card").classList.toggle("flipped"); } function cardNext(){ cardCur=(cardCur+1)%cardWords.length; cardRender(); } function cardPrev(){ cardCur=(cardCur-1+cardWords.length)%cardWords.length; cardRender(); } function cardSpeak(){ if(!cardWords.length) return; var s = new SpeechSynthesisUtterance(cardWords[cardCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
🇫🇷
Chargement des phrases...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var phWords = [], phCur = 0; var phSheetID = "1NShVhTi40CvmC3Q6LOQdUQRA_je8vNVgA1QKa6znChs"; fetch("https://opensheet.elk.sh/" + phSheetID + "/1") .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("ph-fr-word").textContent = "Tableau vide"; return; } phWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); phRender(); }) .catch(function(){ document.getElementById("ph-fr-word").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="ph_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(phWords.length) phRender(); }); }); function phGetLang(){ var el = document.querySelector('input[name="ph_lang"]:checked'); return el ? el.value : "uk"; } function phRender(){ var w = phWords[phCur]; var lang = phGetLang(); var frEl = document.getElementById("ph-fr-word"); frEl.classList.remove("ph-loading"); frEl.textContent = w.fr; document.getElementById("ph-tr-word").textContent = lang === "en" ? w.en : w.uk; document.getElementById("ph-tr-flag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("ph-prog").textContent = (phCur+1) + " / " + phWords.length; document.getElementById("ph-bar").style.width = Math.round((phCur+1)/phWords.length*100) + "%"; document.getElementById("ph-card").classList.remove("flipped"); } function phFlip(){ document.getElementById("ph-card").classList.toggle("flipped"); } function phNext(){ phCur=(phCur+1)%phWords.length; phRender(); } function phPrev(){ phCur=(phCur-1+phWords.length)%phWords.length; phRender(); } function phSpeak(){ if(!phWords.length) return; var s = new SpeechSynthesisUtterance(phWords[phCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
🇫🇷
Chargement des phrases...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var snWords = [], snCur = 0; var snSheetID = "1gDgskjN4E_40TDfhE6VoQ9xgOAD0Sb5PuRir5IUOrMo"; fetch("https://opensheet.elk.sh/" + snSheetID + "/1") .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("sn-fr-word").textContent = "Tableau vide"; return; } snWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); snRender(); }) .catch(function(){ document.getElementById("sn-fr-word").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="sn_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(snWords.length) snRender(); }); }); function snGetLang(){ var el = document.querySelector('input[name="sn_lang"]:checked'); return el ? el.value : "uk"; } function snRender(){ var w = snWords[snCur]; var lang = snGetLang(); var frEl = document.getElementById("sn-fr-word"); frEl.classList.remove("sn-loading"); frEl.textContent = w.fr; document.getElementById("sn-tr-word").textContent = lang === "en" ? w.en : w.uk; document.getElementById("sn-tr-flag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("sn-prog").textContent = (snCur+1) + " / " + snWords.length; document.getElementById("sn-bar").style.width = Math.round((snCur+1)/snWords.length*100) + "%"; document.getElementById("sn-card").classList.remove("flipped"); } function snFlip(){ document.getElementById("sn-card").classList.toggle("flipped"); } function snNext(){ snCur=(snCur+1)%snWords.length; snRender(); } function snPrev(){ snCur=(snCur-1+snWords.length)%snWords.length; snRender(); } function snSpeak(){ if(!snWords.length) return; var s = new SpeechSynthesisUtterance(snWords[snCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
Chargement des tests...
— / —
Cours terminé

Félicitations pour votre réussite !

Merci d'avoir étudié avec nous.
Votre accès reste actif pendant 12 mois.
Nous vous souhaitons de réussir l'examen du Code de la Route dès la première tentative et de bonnes routes !

var qzQ = [], qzCur = 0, qzScore = 0, qzAnswers = {}; var qzSheetID = "1ojnHmjq8FL1ND5ZRGo0_IRYXzAHeqTJC7gbmFW__f48"; fetch("https://opensheet.elk.sh/" + qzSheetID + "/1") .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("qz-q-text").textContent = "Le tableau est vide"; return; } data.forEach(function(row){ if(row["Question"] && row["Correct"]){ qzQ.push({ question: row["Question"] || "", a: row["A"] || "", b: row["B"] || "", c: row["C"] || "", d: row["D"] || "", a_en: row["A_en"] || row["A"] || "", b_en: row["B_en"] || row["B"] || "", c_en: row["C_en"] || row["C"] || "", d_en: row["D_en"] || row["D"] || "", correct: (row["Correct"] || "A").toUpperCase() }); } }); if(!qzQ.length){ document.getElementById("qz-q-text").textContent = "Aucune question trouvée"; return; } qzUpdateCounter(); qzRender(); }) .catch(function(){ document.getElementById("qz-q-text").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="qz_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(qzQ.length) qzRender(); }); }); function qzGetLang(){ var el = document.querySelector('input[name="qz_lang"]:checked'); return el ? el.value : "uk"; } function qzUpdateCounter(){ var el = document.getElementById("qz-prog"); if(el) el.textContent = (qzCur+1) + " / " + qzQ.length; var bar = document.getElementById("qz-bar"); if(bar) bar.style.width = Math.round((qzCur+1)/qzQ.length*100) + "%"; } function qzRender(){ if(qzCur >= qzQ.length){ qzFinal(); return; } var item = qzQ[qzCur]; var lang = qzGetLang(); document.getElementById("qz-q-text").textContent = item.question; qzUpdateCounter(); var opts = lang === "en" ? [{key:"A",text:item.a_en},{key:"B",text:item.b_en},{key:"C",text:item.c_en},{key:"D",text:item.d_en}] : [{key:"A",text:item.a},{key:"B",text:item.b},{key:"C",text:item.c},{key:"D",text:item.d}]; var block = document.getElementById("qz-options-block"); block.innerHTML = ""; opts.forEach(function(opt){ if(!opt.text) return; var btn = document.createElement("button"); btn.className = "qz-opt-btn"; btn.textContent = opt.key + ". " + opt.text; if(qzAnswers[qzCur] !== undefined){ btn.disabled = true; if(opt.key === item.correct) btn.classList.add("correct"); if(qzAnswers[qzCur] === opt.key && opt.key !== item.correct) btn.classList.add("wrong"); } else { (function(b, ok, ck){ b.onclick = function(){ qzCheck(b, ok, ck); }; })(btn, opt.key, item.correct); } block.appendChild(btn); }); } function qzCheck(btn, selectedKey, correctKey){ document.querySelectorAll(".qz-opt-btn").forEach(function(b){ b.disabled = true; }); if(selectedKey === correctKey){ btn.classList.add("correct"); qzScore++; } else { btn.classList.add("wrong"); document.querySelectorAll(".qz-opt-btn").forEach(function(b){ if(b.textContent.startsWith(correctKey + ".")) b.classList.add("correct"); }); } qzAnswers[qzCur] = selectedKey; } function qzNext(){ if(qzCur < qzQ.length - 1){ qzCur++; qzRender(); } else { qzFinal(); } } function qzPrev(){ if(qzCur > 0){ qzCur--; qzRender(); } } function qzFinal(){ document.getElementById("qz-bar-wrap").style.display = "none"; document.getElementById("qz-lang-block").style.display = "none"; document.getElementById("qz-main-box").style.display = "none"; document.getElementById("qz-controls-block").style.display = "none"; document.getElementById("qz-final-score").innerHTML = qzScore + ' / ' + qzQ.length + ''; document.getElementById("qz-final-screen").style.display = "block"; var canvas = document.getElementById("qz-confetti"); var final = document.getElementById("qz-final-screen"); canvas.width = final.offsetWidth; canvas.height = final.offsetHeight; var ctx = canvas.getContext("2d"); var W = canvas.width, H = canvas.height; var colors = ["#534AB7","#1D9E75","#D85A30","#D4537E","#378ADD","#BA7517"]; var particles = []; for(var i=0;i<90;i++){ particles.push({ x:Math.random()*W, y:Math.random()*H-H, w:7+Math.random()*7, h:4+Math.random()*4, color:colors[Math.floor(Math.random()*colors.length)], rot:Math.random()*360, rotSpeed:(Math.random()-0.5)*4, vy:1.5+Math.random()*2.5, vx:(Math.random()-0.5)*1.5 }); } var running = true; function draw(){ ctx.clearRect(0,0,W,H); particles.forEach(function(p){ ctx.save(); ctx.translate(p.x+p.w/2, p.y+p.h/2); ctx.rotate(p.rot*Math.PI/180); ctx.fillStyle = p.color; ctx.fillRect(-p.w/2,-p.h/2,p.w,p.h); ctx.restore(); p.y+=p.vy; p.x+=p.vx; p.rot+=p.rotSpeed; if(p.y>H){ p.y=-p.h; p.x=Math.random()*W; } }); if(running) requestAnimationFrame(draw); } draw(); setTimeout(function(){ running=false; ctx.clearRect(0,0,W,H); }, 15000); } function qzSpeak(){ if(!qzQ.length || qzCur >= qzQ.length) return; var text = qzQ[qzCur].question; if(/[а-яА-ЯёЁіІїЇєЄґҐ]/.test(text)) return; var s = new SpeechSynthesisUtterance(text); s.lang = "fr-FR"; s.rate = 0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }

Bienvenue dans le cours PRO de vocabulaire français pour "L'Entretien d'Embauche" !

Grâce à notre programme, vous apprendrez le vocabulaire essentiel, les expressions courantes et des phrases complètes qui vous aideront à comprendre facilement les questions des recruteurs et à répondre avec assurance lors de vos entretiens.Nous vous souhaitons un apprentissage agréable et beaucoup de réussite pour vos futurs entretiens !

🇫🇷
recruteur
Cliquer pour basculer
🇺🇦
рекрутер
Cliquer pour basculer
1 / 10
var eeWords = [ {fr:"recruteur", uk:"рекрутер", en:"recruiter"}, {fr:"entretien", uk:"співбесіда", en:"interview"}, {fr:"entreprise", uk:"компанія", en:"company"}, {fr:"candidature", uk:"кандидатура", en:"application"}, {fr:"CV", uk:"резюме", en:"CV"}, {fr:"expérience", uk:"досвід", en:"experience"}, {fr:"disponibilité", uk:"готовність / доступність", en:"availability"}, {fr:"contrat", uk:"договір", en:"contract"}, {fr:"salaire", uk:"зарплата", en:"salary"}, {fr:"période d'essai", uk:"випробувальний термін", en:"probation period"} ]; var eeCur = 0; var eeCurrentLang = 'uk'; function eeSetLang(lang) { eeCurrentLang = lang; eeRender(); } function eeRender() { var w = eeWords[eeCur]; document.getElementById("eeFr").textContent = w.fr; if (eeCurrentLang === 'en') { document.getElementById("eeLangBack").textContent = "🇬🇧"; document.getElementById("eeUk").textContent = w.en; } else { document.getElementById("eeLangBack").textContent = "🇺🇦"; document.getElementById("eeUk").textContent = w.uk; } document.getElementById("eeProg").textContent = (eeCur + 1) + " / " + eeWords.length; var bar = document.getElementById("eeNativeBar"); if (bar) bar.value = eeCur + 1; var card = document.getElementById("eeCard"); if (card) card.classList.remove("flipped"); } function eeFlip() { var card = document.getElementById("eeCard"); if (card) card.classList.toggle("flipped"); } function eeNext() { if (eeCur >= eeWords.length - 1) { var cb = document.getElementById("eeCardsBlock"); var nb = document.getElementById("eeNativeBar"); var ls = document.getElementById("eeLangSwitch"); if (cb) cb.remove(); if (nb) nb.remove(); if (ls) ls.remove(); var fb = document.getElementById("eeFinishBlock"); if (fb) fb.style.display = "block"; return; } eeCur++; eeRender(); } function eePrev() { if (eeCur > 0) { eeCur--; eeRender(); } } function eeSpeak() { var s = new SpeechSynthesisUtterance(eeWords[eeCur].fr); s.lang = "fr-FR"; s.rate = 0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); } eeRender();
🇫🇷
Chargement des mots...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var eewWords = [], eewCur = 0; var eewSheetID = "1PTFLC4PsMKp4BNLraPaek7X4kKbKJOM4TvvlxjKTv3M"; var eewSheetName = "Слова (Mots)"; fetch("https://opensheet.elk.sh/" + eewSheetID + "/" + encodeURIComponent(eewSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("eewFrWord").textContent = "Tableau vide"; return; } eewWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); eewRender(); }) .catch(function(){ document.getElementById("eewFrWord").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="eew_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(eewWords.length) eewRender(); }); }); function eewGetLang(){ var el = document.querySelector('input[name="eew_lang"]:checked'); return el ? el.value : "uk"; } function eewRender(){ var w = eewWords[eewCur]; var lang = eewGetLang(); var frEl = document.getElementById("eewFrWord"); frEl.classList.remove("eew-loading"); frEl.textContent = w.fr; document.getElementById("eewTrWord").textContent = lang === "en" ? w.en : w.uk; document.getElementById("eewTrFlag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("eewProg").textContent = (eewCur+1) + " / " + eewWords.length; document.getElementById("eewBar").style.width = Math.round((eewCur+1)/eewWords.length*100) + "%"; document.getElementById("eewCard").classList.remove("flipped"); } function eewFlip(){ document.getElementById("eewCard").classList.toggle("flipped"); } function eewNext(){ eewCur=(eewCur+1)%eewWords.length; eewRender(); } function eewPrev(){ eewCur=(eewCur-1+eewWords.length)%eewWords.length; eewRender(); } function eewSpeak(){ if(!eewWords.length) return; var s = new SpeechSynthesisUtterance(eewWords[eewCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
🇫🇷
Chargement des phrases...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var eepWords = [], eepCur = 0; var eepSheetID = "1PTFLC4PsMKp4BNLraPaek7X4kKbKJOM4TvvlxjKTv3M"; var eepSheetName = "Фразы (Phrases)"; fetch("https://opensheet.elk.sh/" + eepSheetID + "/" + encodeURIComponent(eepSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("eepFrWord").textContent = "Tableau vide"; return; } eepWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); eepRender(); }) .catch(function(){ document.getElementById("eepFrWord").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="eep_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(eepWords.length) eepRender(); }); }); function eepGetLang(){ var el = document.querySelector('input[name="eep_lang"]:checked'); return el ? el.value : "uk"; } function eepRender(){ var w = eepWords[eepCur]; var lang = eepGetLang(); var frEl = document.getElementById("eepFrWord"); frEl.classList.remove("eep-loading"); frEl.textContent = w.fr; document.getElementById("eepTrWord").textContent = lang === "en" ? w.en : w.uk; document.getElementById("eepTrFlag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("eepProg").textContent = (eepCur+1) + " / " + eepWords.length; document.getElementById("eepBar").style.width = Math.round((eepCur+1)/eepWords.length*100) + "%"; document.getElementById("eepCard").classList.remove("flipped"); } function eepFlip(){ document.getElementById("eepCard").classList.toggle("flipped"); } function eepNext(){ eepCur=(eepCur+1)%eepWords.length; eepRender(); } function eepPrev(){ eepCur=(eepCur-1+eepWords.length)%eepWords.length; eepRender(); } function eepSpeak(){ if(!eepWords.length) return; var s = new SpeechSynthesisUtterance(eepWords[eepCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
🇫🇷
Chargement des phrases...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var eesWords = [], eesCur = 0; var eesSheetID = "1PTFLC4PsMKp4BNLraPaek7X4kKbKJOM4TvvlxjKTv3M"; var eesSheetName = "Предложения (Phrases longues)"; fetch("https://opensheet.elk.sh/" + eesSheetID + "/" + encodeURIComponent(eesSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("eesFrWord").textContent = "Tableau vide"; return; } eesWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); eesRender(); }) .catch(function(){ document.getElementById("eesFrWord").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="ees_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(eesWords.length) eesRender(); }); }); function eesGetLang(){ var el = document.querySelector('input[name="ees_lang"]:checked'); return el ? el.value : "uk"; } function eesRender(){ var w = eesWords[eesCur]; var lang = eesGetLang(); var frEl = document.getElementById("eesFrWord"); frEl.classList.remove("ees-loading"); frEl.textContent = w.fr; document.getElementById("eesTrWord").textContent = lang === "en" ? w.en : w.uk; document.getElementById("eesTrFlag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("eesProg").textContent = (eesCur+1) + " / " + eesWords.length; document.getElementById("eesBar").style.width = Math.round((eesCur+1)/eesWords.length*100) + "%"; document.getElementById("eesCard").classList.remove("flipped"); } function eesFlip(){ document.getElementById("eesCard").classList.toggle("flipped"); } function eesNext(){ eesCur=(eesCur+1)%eesWords.length; eesRender(); } function eesPrev(){ eesCur=(eesCur-1+eesWords.length)%eesWords.length; eesRender(); } function eesSpeak(){ if(!eesWords.length) return; var s = new SpeechSynthesisUtterance(eesWords[eesCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
Chargement des tests...
— / —
Cours terminé

Félicitations pour votre réussite !

Merci d'avoir étudié avec nous.
Votre accès reste actif pendant 12 mois.
Nous vous souhaitons de réussir votre entretien d'embauche dès la première tentative et bonne chance dans votre recherche d'emploi !

var eetQ = [], eetCur = 0, eetScore = 0, eetAnswers = {}; var eetSheetID = "1PTFLC4PsMKp4BNLraPaek7X4kKbKJOM4TvvlxjKTv3M"; var eetSheetName = "Тесты (Tests)"; fetch("https://opensheet.elk.sh/" + eetSheetID + "/" + encodeURIComponent(eetSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("eetQText").textContent = "Le tableau est vide"; return; } data.forEach(function(row){ if(row["Question"] && row["Correct"]){ eetQ.push({ question: row["Question"] || "", a: row["A"] || "", b: row["B"] || "", c: row["C"] || "", d: row["D"] || "", a_en: row["A_en"] || row["A"] || "", b_en: row["B_en"] || row["B"] || "", c_en: row["C_en"] || row["C"] || "", d_en: row["D_en"] || row["D"] || "", correct: (row["Correct"] || "A").toUpperCase() }); } }); if(!eetQ.length){ document.getElementById("eetQText").textContent = "Aucune question trouvée"; return; } eetUpdateCounter(); eetRender(); }) .catch(function(){ document.getElementById("eetQText").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="eet_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(eetQ.length) eetRender(); }); }); function eetGetLang(){ var el = document.querySelector('input[name="eet_lang"]:checked'); return el ? el.value : "uk"; } function eetUpdateCounter(){ var el = document.getElementById("eetProg"); if(el) el.textContent = (eetCur+1) + " / " + eetQ.length; var bar = document.getElementById("eetBar"); if(bar) bar.style.width = Math.round((eetCur+1)/eetQ.length*100) + "%"; } function eetRender(){ if(eetCur >= eetQ.length){ eetFinal(); return; } var item = eetQ[eetCur]; var lang = eetGetLang(); document.getElementById("eetQText").textContent = item.question; eetUpdateCounter(); var opts = lang === "en" ? [{key:"A",text:item.a_en},{key:"B",text:item.b_en},{key:"C",text:item.c_en},{key:"D",text:item.d_en}] : [{key:"A",text:item.a},{key:"B",text:item.b},{key:"C",text:item.c},{key:"D",text:item.d}]; var block = document.getElementById("eetOptionsBlock"); block.innerHTML = ""; opts.forEach(function(opt){ if(!opt.text) return; var btn = document.createElement("button"); btn.className = "eet-opt-btn"; btn.textContent = opt.key + ". " + opt.text; if(eetAnswers[eetCur] !== undefined){ btn.disabled = true; if(opt.key === item.correct) btn.classList.add("correct"); if(eetAnswers[eetCur] === opt.key && opt.key !== item.correct) btn.classList.add("wrong"); } else { (function(b, ok, ck){ b.onclick = function(){ eetCheck(b, ok, ck); }; })(btn, opt.key, item.correct); } block.appendChild(btn); }); } function eetCheck(btn, selectedKey, correctKey){ document.querySelectorAll(".eet-opt-btn").forEach(function(b){ b.disabled = true; }); if(selectedKey === correctKey){ btn.classList.add("correct"); eetScore++; } else { btn.classList.add("wrong"); document.querySelectorAll(".eet-opt-btn").forEach(function(b){ if(b.textContent.startsWith(correctKey + ".")) b.classList.add("correct"); }); } eetAnswers[eetCur] = selectedKey; } function eetNext(){ if(eetCur < eetQ.length - 1){ eetCur++; eetRender(); } else { eetFinal(); } } function eetPrev(){ if(eetCur > 0){ eetCur--; eetRender(); } } function eetFinal(){ document.getElementById("eetBarWrap").style.display = "none"; document.getElementById("eetLangBlock").style.display = "none"; document.getElementById("eetMainBox").style.display = "none"; document.getElementById("eetControlsBlock").style.display = "none"; document.getElementById("eetFinalScore").innerHTML = eetScore + ' / ' + eetQ.length + ''; document.getElementById("eetFinalScreen").style.display = "block"; var canvas = document.getElementById("eetConfetti"); var final = document.getElementById("eetFinalScreen"); canvas.width = final.offsetWidth; canvas.height = final.offsetHeight; var ctx = canvas.getContext("2d"); var W = canvas.width, H = canvas.height; var colors = ["#534AB7","#1D9E75","#D85A30","#D4537E","#378ADD","#BA7517"]; var particles = []; for(var i=0;i<90;i++){ particles.push({ x:Math.random()*W, y:Math.random()*H-H, w:7+Math.random()*7, h:4+Math.random()*4, color:colors[Math.floor(Math.random()*colors.length)], rot:Math.random()*360, rotSpeed:(Math.random()-0.5)*4, vy:1.5+Math.random()*2.5, vx:(Math.random()-0.5)*1.5 }); } var running = true; function draw(){ ctx.clearRect(0,0,W,H); particles.forEach(function(p){ ctx.save(); ctx.translate(p.x+p.w/2, p.y+p.h/2); ctx.rotate(p.rot*Math.PI/180); ctx.fillStyle = p.color; ctx.fillRect(-p.w/2,-p.h/2,p.w,p.h); ctx.restore(); p.y+=p.vy; p.x+=p.vx; p.rot+=p.rotSpeed; if(p.y>H){ p.y=-p.h; p.x=Math.random()*W; } }); if(running) requestAnimationFrame(draw); } draw(); setTimeout(function(){ running=false; ctx.clearRect(0,0,W,H); }, 15000); } function eetSpeak(){ if(!eetQ.length || eetCur >= eetQ.length) return; var text = eetQ[eetCur].question; if(/[а-яА-ЯёЁіІїЇєЄґҐ]/.test(text)) return; var s = new SpeechSynthesisUtterance(text); s.lang = "fr-FR"; s.rate = 0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }

Bienvenue dans le cours PRO de vocabulaire français pour vos « Démarches Administratives (CAF, Ameli) » !

Grâce à notre programme, vous apprendrez le vocabulaire essentiel, les expressions courantes et des phrases complètes qui vous aideront à comprendre facilement les formulaires, à échanger avec les conseillers et à effectuer vos démarches en toute confiance.Nous vous souhaitons un apprentissage agréable et une totale réussite dans la gestion de vos démarches administratives !

🇫🇷
Je voudrais prendre rendez-vous.
Cliquer pour basculer
🇺🇦
Я хотів би записатися на прийом.
Cliquer pour basculer
1 / 10
var daWords = [ {fr:"Je voudrais prendre rendez-vous.", uk:"Я хотів би записатися на прийом.", en:"I would like to make an appointment."}, {fr:"Ai-je droit à l'allocation logement ?", uk:"Чи маю я право на житлову допомогу?", en:"Am I entitled to housing allowance?"}, {fr:"Comment obtenir ma carte vitale ?", uk:"Як отримати карту Vitale?", en:"How do I get my Vitale health card?"}, {fr:"Je dois renouveler mon titre de séjour.", uk:"Мені потрібно поновити вид на проживання.", en:"I need to renew my residence permit."}, {fr:"Comment demander l'aide au logement ?", uk:"Як подати заявку на житлову допомогу?", en:"How do I apply for housing assistance?"}, {fr:"Quels documents dois-je fournir ?", uk:"Які документи я маю надати?", en:"What documents do I need to provide?"}, {fr:"Comment déclarer mon médecin traitant ?", uk:"Як зареєструвати сімейного лікаря?", en:"How do I register my attending physician?"}, {fr:"Où puis-je suivre l'avancement de ma demande ?", uk:"Де я можу відстежити хід розгляду моєї заявки?", en:"Where can I track the progress of my request?"}, {fr:"Je souhaite déposer une réclamation.", uk:"Я хочу подати скаргу.", en:"I would like to file a complaint."}, {fr:"Comment demander la prime d'activité ?", uk:"Як подати заявку на надбавку за зайнятість?", en:"How do I apply for the in-work bonus?"} ]; var daCur = 0; var daCurrentLang = 'uk'; function daSetLang(lang) { daCurrentLang = lang; daRender(); } function daRender() { var w = daWords[daCur]; document.getElementById("daFr").textContent = w.fr; if (daCurrentLang === 'en') { document.getElementById("daLangBack").textContent = "🇬🇧"; document.getElementById("daUk").textContent = w.en; } else { document.getElementById("daLangBack").textContent = "🇺🇦"; document.getElementById("daUk").textContent = w.uk; } document.getElementById("daProg").textContent = (daCur + 1) + " / " + daWords.length; var bar = document.getElementById("daNativeBar"); if (bar) bar.value = daCur + 1; var card = document.getElementById("daCard"); if (card) card.classList.remove("flipped"); } function daFlip() { var card = document.getElementById("daCard"); if (card) card.classList.toggle("flipped"); } function daNext() { if (daCur >= daWords.length - 1) { var cb = document.getElementById("daCardsBlock"); var nb = document.getElementById("daNativeBar"); var ls = document.getElementById("daLangSwitch"); if (cb) cb.remove(); if (nb) nb.remove(); if (ls) ls.remove(); var fb = document.getElementById("daFinishBlock"); if (fb) fb.style.display = "block"; return; } daCur++; daRender(); } function daPrev() { if (daCur > 0) { daCur--; daRender(); } } function daSpeak() { var s = new SpeechSynthesisUtterance(daWords[daCur].fr); s.lang = "fr-FR"; s.rate = 0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); } daRender();
🇫🇷
Chargement des mots...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var dawWords = [], dawCur = 0; var dawSheetID = "1gN-jicRsAL2wNaMm3W-_Atx1b81Oox3pEIHVMxRO3YM"; var dawSheetName = "Слова (Mots)"; fetch("https://opensheet.elk.sh/" + dawSheetID + "/" + encodeURIComponent(dawSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("dawFrWord").textContent = "Tableau vide"; return; } dawWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); dawRender(); }) .catch(function(){ document.getElementById("dawFrWord").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="daw_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(dawWords.length) dawRender(); }); }); function dawGetLang(){ var el = document.querySelector('input[name="daw_lang"]:checked'); return el ? el.value : "uk"; } function dawRender(){ var w = dawWords[dawCur]; var lang = dawGetLang(); var frEl = document.getElementById("dawFrWord"); frEl.classList.remove("daw-loading"); frEl.textContent = w.fr; document.getElementById("dawTrWord").textContent = lang === "en" ? w.en : w.uk; document.getElementById("dawTrFlag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("dawProg").textContent = (dawCur+1) + " / " + dawWords.length; document.getElementById("dawBar").style.width = Math.round((dawCur+1)/dawWords.length*100) + "%"; document.getElementById("dawCard").classList.remove("flipped"); } function dawFlip(){ document.getElementById("dawCard").classList.toggle("flipped"); } function dawNext(){ dawCur=(dawCur+1)%dawWords.length; dawRender(); } function dawPrev(){ dawCur=(dawCur-1+dawWords.length)%dawWords.length; dawRender(); } function dawSpeak(){ if(!dawWords.length) return; var s = new SpeechSynthesisUtterance(dawWords[dawCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
🇫🇷
Chargement des phrases...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var dapWords = [], dapCur = 0; var dapSheetID = "1gN-jicRsAL2wNaMm3W-_Atx1b81Oox3pEIHVMxRO3YM"; var dapSheetName = "Фразы (Phrases)"; fetch("https://opensheet.elk.sh/" + dapSheetID + "/" + encodeURIComponent(dapSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("dapFrWord").textContent = "Tableau vide"; return; } dapWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); dapRender(); }) .catch(function(){ document.getElementById("dapFrWord").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="dap_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(dapWords.length) dapRender(); }); }); function dapGetLang(){ var el = document.querySelector('input[name="dap_lang"]:checked'); return el ? el.value : "uk"; } function dapRender(){ var w = dapWords[dapCur]; var lang = dapGetLang(); var frEl = document.getElementById("dapFrWord"); frEl.classList.remove("dap-loading"); frEl.textContent = w.fr; document.getElementById("dapTrWord").textContent = lang === "en" ? w.en : w.uk; document.getElementById("dapTrFlag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("dapProg").textContent = (dapCur+1) + " / " + dapWords.length; document.getElementById("dapBar").style.width = Math.round((dapCur+1)/dapWords.length*100) + "%"; document.getElementById("dapCard").classList.remove("flipped"); } function dapFlip(){ document.getElementById("dapCard").classList.toggle("flipped"); } function dapNext(){ dapCur=(dapCur+1)%dapWords.length; dapRender(); } function dapPrev(){ dapCur=(dapCur-1+dapWords.length)%dapWords.length; dapRender(); } function dapSpeak(){ if(!dapWords.length) return; var s = new SpeechSynthesisUtterance(dapWords[dapCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
🇫🇷
Chargement des phrases...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var dasWords = [], dasCur = 0; var dasSheetID = "1gN-jicRsAL2wNaMm3W-_Atx1b81Oox3pEIHVMxRO3YM"; var dasSheetName = "Предложения (Phrases longues)"; fetch("https://opensheet.elk.sh/" + dasSheetID + "/" + encodeURIComponent(dasSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("dasFrWord").textContent = "Tableau vide"; return; } dasWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); dasRender(); }) .catch(function(){ document.getElementById("dasFrWord").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="das_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(dasWords.length) dasRender(); }); }); function dasGetLang(){ var el = document.querySelector('input[name="das_lang"]:checked'); return el ? el.value : "uk"; } function dasRender(){ var w = dasWords[dasCur]; var lang = dasGetLang(); var frEl = document.getElementById("dasFrWord"); frEl.classList.remove("das-loading"); frEl.textContent = w.fr; document.getElementById("dasTrWord").textContent = lang === "en" ? w.en : w.uk; document.getElementById("dasTrFlag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("dasProg").textContent = (dasCur+1) + " / " + dasWords.length; document.getElementById("dasBar").style.width = Math.round((dasCur+1)/dasWords.length*100) + "%"; document.getElementById("dasCard").classList.remove("flipped"); } function dasFlip(){ document.getElementById("dasCard").classList.toggle("flipped"); } function dasNext(){ dasCur=(dasCur+1)%dasWords.length; dasRender(); } function dasPrev(){ dasCur=(dasCur-1+dasWords.length)%dasWords.length; dasRender(); } function dasSpeak(){ if(!dasWords.length) return; var s = new SpeechSynthesisUtterance(dasWords[dasCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
Chargement des tests...
— / —
Cours terminé

Félicitations pour votre réussite !

Merci d'avoir étudié avec nous.
Votre accès reste actif pendant 12 mois.
Nous vous souhaitons de gérer sereinement toutes vos démarches administratives en France !

var datQ = [], datCur = 0, datScore = 0, datAnswers = {}; var datSheetID = "1gN-jicRsAL2wNaMm3W-_Atx1b81Oox3pEIHVMxRO3YM"; var datSheetName = "Тесты (Tests)"; fetch("https://opensheet.elk.sh/" + datSheetID + "/" + encodeURIComponent(datSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("datQText").textContent = "Le tableau est vide"; return; } data.forEach(function(row){ if(row["Question"] && row["Correct"]){ datQ.push({ question: row["Question"] || "", a: row["A"] || "", b: row["B"] || "", c: row["C"] || "", d: row["D"] || "", a_en: row["A_en"] || row["A"] || "", b_en: row["B_en"] || row["B"] || "", c_en: row["C_en"] || row["C"] || "", d_en: row["D_en"] || row["D"] || "", correct: (row["Correct"] || "A").toUpperCase() }); } }); if(!datQ.length){ document.getElementById("datQText").textContent = "Aucune question trouvée"; return; } datUpdateCounter(); datRender(); }) .catch(function(){ document.getElementById("datQText").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="dat_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(datQ.length) datRender(); }); }); function datGetLang(){ var el = document.querySelector('input[name="dat_lang"]:checked'); return el ? el.value : "uk"; } function datUpdateCounter(){ var el = document.getElementById("datProg"); if(el) el.textContent = (datCur+1) + " / " + datQ.length; var bar = document.getElementById("datBar"); if(bar) bar.style.width = Math.round((datCur+1)/datQ.length*100) + "%"; } function datRender(){ if(datCur >= datQ.length){ datFinal(); return; } var item = datQ[datCur]; var lang = datGetLang(); document.getElementById("datQText").textContent = item.question; datUpdateCounter(); var opts = lang === "en" ? [{key:"A",text:item.a_en},{key:"B",text:item.b_en},{key:"C",text:item.c_en},{key:"D",text:item.d_en}] : [{key:"A",text:item.a},{key:"B",text:item.b},{key:"C",text:item.c},{key:"D",text:item.d}]; var block = document.getElementById("datOptionsBlock"); block.innerHTML = ""; opts.forEach(function(opt){ if(!opt.text) return; var btn = document.createElement("button"); btn.className = "dat-opt-btn"; btn.textContent = opt.key + ". " + opt.text; if(datAnswers[datCur] !== undefined){ btn.disabled = true; if(opt.key === item.correct) btn.classList.add("correct"); if(datAnswers[datCur] === opt.key && opt.key !== item.correct) btn.classList.add("wrong"); } else { (function(b, ok, ck){ b.onclick = function(){ datCheck(b, ok, ck); }; })(btn, opt.key, item.correct); } block.appendChild(btn); }); } function datCheck(btn, selectedKey, correctKey){ document.querySelectorAll(".dat-opt-btn").forEach(function(b){ b.disabled = true; }); if(selectedKey === correctKey){ btn.classList.add("correct"); datScore++; } else { btn.classList.add("wrong"); document.querySelectorAll(".dat-opt-btn").forEach(function(b){ if(b.textContent.startsWith(correctKey + ".")) b.classList.add("correct"); }); } datAnswers[datCur] = selectedKey; } function datNext(){ if(datCur < datQ.length - 1){ datCur++; datRender(); } else { datFinal(); } } function datPrev(){ if(datCur > 0){ datCur--; datRender(); } } function datFinal(){ document.getElementById("datBarWrap").style.display = "none"; document.getElementById("datLangBlock").style.display = "none"; document.getElementById("datMainBox").style.display = "none"; document.getElementById("datControlsBlock").style.display = "none"; document.getElementById("datFinalScore").innerHTML = datScore + ' / ' + datQ.length + ''; document.getElementById("datFinalScreen").style.display = "block"; var canvas = document.getElementById("datConfetti"); var final = document.getElementById("datFinalScreen"); canvas.width = final.offsetWidth; canvas.height = final.offsetHeight; var ctx = canvas.getContext("2d"); var W = canvas.width, H = canvas.height; var colors = ["#534AB7","#1D9E75","#D85A30","#D4537E","#378ADD","#BA7517"]; var particles = []; for(var i=0;i<90;i++){ particles.push({ x:Math.random()*W, y:Math.random()*H-H, w:7+Math.random()*7, h:4+Math.random()*4, color:colors[Math.floor(Math.random()*colors.length)], rot:Math.random()*360, rotSpeed:(Math.random()-0.5)*4, vy:1.5+Math.random()*2.5, vx:(Math.random()-0.5)*1.5 }); } var running = true; function draw(){ ctx.clearRect(0,0,W,H); particles.forEach(function(p){ ctx.save(); ctx.translate(p.x+p.w/2, p.y+p.h/2); ctx.rotate(p.rot*Math.PI/180); ctx.fillStyle = p.color; ctx.fillRect(-p.w/2,-p.h/2,p.w,p.h); ctx.restore(); p.y+=p.vy; p.x+=p.vx; p.rot+=p.rotSpeed; if(p.y>H){ p.y=-p.h; p.x=Math.random()*W; } }); if(running) requestAnimationFrame(draw); } draw(); setTimeout(function(){ running=false; ctx.clearRect(0,0,W,H); }, 15000); } function datSpeak(){ if(!datQ.length || datCur >= datQ.length) return; var text = datQ[datCur].question; if(/[а-яА-ЯёЁіІїЇєЄґҐ]/.test(text)) return; var s = new SpeechSynthesisUtterance(text); s.lang = "fr-FR"; s.rate = 0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }

Bienvenue dans le cours PRO de vocabulaire français : « Préparation à l'examen civique » !

Grâce à notre programme, vous apprendrez le vocabulaire essentiel, les expressions clés et les notions fondamentales qui vous aideront à comprendre facilement les valeurs de la République, à échanger sereinement lors de l'entretien et à réussir votre examen en toute confiance.Nous vous souhaitons un apprentissage agréable et une totale réussite dans votre préparation à l'examen civique !

🇫🇷
République
Cliquer pour basculer
🇺🇦
Республіка
Cliquer pour basculer
1 / 10
var ecWords = [ {fr:"République", uk:"Республіка", en:"Republic"}, {fr:"démocratie", uk:"демократія", en:"democracy"}, {fr:"laïcité", uk:"світськість", en:"secularism"}, {fr:"Assemblée nationale", uk:"Національні збори", en:"National Assembly"}, {fr:"Union européenne", uk:"Європейський Союз", en:"European Union"}, {fr:"Tour Eiffel", uk:"Ейфелева вежа", en:"Eiffel Tower"}, {fr:"Premier ministre", uk:"Прем'єр-міністр", en:"Prime Minister"}, {fr:"droits de l'homme", uk:"права людини", en:"human rights"}, {fr:"droit de vote", uk:"право голосу", en:"right to vote"}, {fr:"Président de la République", uk:"Президент Республіки", en:"President of the Republic"} ]; var ecCur = 0; var ecCurrentLang = 'uk'; function ecSetLang(lang) { ecCurrentLang = lang; ecRender(); } function ecRender() { var w = ecWords[ecCur]; document.getElementById("ecFr").textContent = w.fr; if (ecCurrentLang === 'en') { document.getElementById("ecLangBack").textContent = "🇬🇧"; document.getElementById("ecUk").textContent = w.en; } else { document.getElementById("ecLangBack").textContent = "🇺🇦"; document.getElementById("ecUk").textContent = w.uk; } document.getElementById("ecProg").textContent = (ecCur + 1) + " / " + ecWords.length; var bar = document.getElementById("ecNativeBar"); if (bar) bar.value = ecCur + 1; var card = document.getElementById("ecCard"); if (card) card.classList.remove("flipped"); } function ecFlip() { var card = document.getElementById("ecCard"); if (card) card.classList.toggle("flipped"); } function ecNext() { if (ecCur >= ecWords.length - 1) { var cb = document.getElementById("ecCardsBlock"); var nb = document.getElementById("ecNativeBar"); var ls = document.getElementById("ecLangSwitch"); if (cb) cb.remove(); if (nb) nb.remove(); if (ls) ls.remove(); var fb = document.getElementById("ecFinishBlock"); if (fb) fb.style.display = "block"; return; } ecCur++; ecRender(); } function ecPrev() { if (ecCur > 0) { ecCur--; ecRender(); } } function ecSpeak() { var s = new SpeechSynthesisUtterance(ecWords[ecCur].fr); s.lang = "fr-FR"; s.rate = 0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); } ecRender();
🇫🇷
Chargement des mots...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var ecwWords = [], ecwCur = 0; var ecwSheetID = "14QJ_ycXDMWk11TOW5jXLUTiOUgg_eSCHVmUbwIeiqbc"; var ecwSheetName = "Слова (Mots)"; fetch("https://opensheet.elk.sh/" + ecwSheetID + "/" + encodeURIComponent(ecwSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("ecwFrWord").textContent = "Tableau vide"; return; } ecwWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); ecwRender(); }) .catch(function(){ document.getElementById("ecwFrWord").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="ecw_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(ecwWords.length) ecwRender(); }); }); function ecwGetLang(){ var el = document.querySelector('input[name="ecw_lang"]:checked'); return el ? el.value : "uk"; } function ecwRender(){ var w = ecwWords[ecwCur]; var lang = ecwGetLang(); var frEl = document.getElementById("ecwFrWord"); frEl.classList.remove("ecw-loading"); frEl.textContent = w.fr; document.getElementById("ecwTrWord").textContent = lang === "en" ? w.en : w.uk; document.getElementById("ecwTrFlag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("ecwProg").textContent = (ecwCur+1) + " / " + ecwWords.length; document.getElementById("ecwBar").style.width = Math.round((ecwCur+1)/ecwWords.length*100) + "%"; document.getElementById("ecwCard").classList.remove("flipped"); } function ecwFlip(){ document.getElementById("ecwCard").classList.toggle("flipped"); } function ecwNext(){ ecwCur=(ecwCur+1)%ecwWords.length; ecwRender(); } function ecwPrev(){ ecwCur=(ecwCur-1+ecwWords.length)%ecwWords.length; ecwRender(); } function ecwSpeak(){ if(!ecwWords.length) return; var s = new SpeechSynthesisUtterance(ecwWords[ecwCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
🇫🇷
Chargement des phrases...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var ecpWords = [], ecpCur = 0; var ecpSheetID = "14QJ_ycXDMWk11TOW5jXLUTiOUgg_eSCHVmUbwIeiqbc"; var ecpSheetName = "Фразы (Phrases)"; fetch("https://opensheet.elk.sh/" + ecpSheetID + "/" + encodeURIComponent(ecpSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("ecpFrWord").textContent = "Tableau vide"; return; } ecpWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); ecpRender(); }) .catch(function(){ document.getElementById("ecpFrWord").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="ecp_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(ecpWords.length) ecpRender(); }); }); function ecpGetLang(){ var el = document.querySelector('input[name="ecp_lang"]:checked'); return el ? el.value : "uk"; } function ecpRender(){ var w = ecpWords[ecpCur]; var lang = ecpGetLang(); var frEl = document.getElementById("ecpFrWord"); frEl.classList.remove("ecp-loading"); frEl.textContent = w.fr; document.getElementById("ecpTrWord").textContent = lang === "en" ? w.en : w.uk; document.getElementById("ecpTrFlag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("ecpProg").textContent = (ecpCur+1) + " / " + ecpWords.length; document.getElementById("ecpBar").style.width = Math.round((ecpCur+1)/ecpWords.length*100) + "%"; document.getElementById("ecpCard").classList.remove("flipped"); } function ecpFlip(){ document.getElementById("ecpCard").classList.toggle("flipped"); } function ecpNext(){ ecpCur=(ecpCur+1)%ecpWords.length; ecpRender(); } function ecpPrev(){ ecpCur=(ecpCur-1+ecpWords.length)%ecpWords.length; ecpRender(); } function ecpSpeak(){ if(!ecpWords.length) return; var s = new SpeechSynthesisUtterance(ecpWords[ecpCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
🇫🇷
Chargement des phrases...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var ecsWords = [], ecsCur = 0; var ecsSheetID = "14QJ_ycXDMWk11TOW5jXLUTiOUgg_eSCHVmUbwIeiqbc"; var ecsSheetName = "Предложения (Phrases longues)"; fetch("https://opensheet.elk.sh/" + ecsSheetID + "/" + encodeURIComponent(ecsSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("ecsFrWord").textContent = "Tableau vide"; return; } ecsWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); ecsRender(); }) .catch(function(){ document.getElementById("ecsFrWord").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="ecs_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(ecsWords.length) ecsRender(); }); }); function ecsGetLang(){ var el = document.querySelector('input[name="ecs_lang"]:checked'); return el ? el.value : "uk"; } function ecsRender(){ var w = ecsWords[ecsCur]; var lang = ecsGetLang(); var frEl = document.getElementById("ecsFrWord"); frEl.classList.remove("ecs-loading"); frEl.textContent = w.fr; document.getElementById("ecsTrWord").textContent = lang === "en" ? w.en : w.uk; document.getElementById("ecsTrFlag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("ecsProg").textContent = (ecsCur+1) + " / " + ecsWords.length; document.getElementById("ecsBar").style.width = Math.round((ecsCur+1)/ecsWords.length*100) + "%"; document.getElementById("ecsCard").classList.remove("flipped"); } function ecsFlip(){ document.getElementById("ecsCard").classList.toggle("flipped"); } function ecsNext(){ ecsCur=(ecsCur+1)%ecsWords.length; ecsRender(); } function ecsPrev(){ ecsCur=(ecsCur-1+ecsWords.length)%ecsWords.length; ecsRender(); } function ecsSpeak(){ if(!ecsWords.length) return; var s = new SpeechSynthesisUtterance(ecsWords[ecsCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
Chargement des tests...
— / —
Cours terminé

Félicitations pour votre réussite !

Merci d'avoir étudié avec nous.
Votre accès reste actif pendant 3 mois.
Nous vous souhaitons de réussir votre examen civique avec confiance !

var ectQ = [], ectCur = 0, ectScore = 0, ectAnswers = {}; var ectSheetID = "14QJ_ycXDMWk11TOW5jXLUTiOUgg_eSCHVmUbwIeiqbc"; var ectSheetName = "Тесты (Tests)"; fetch("https://opensheet.elk.sh/" + ectSheetID + "/" + encodeURIComponent(ectSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("ectQText").textContent = "Le tableau est vide"; return; } data.forEach(function(row){ if(row["Question"] && row["Correct"]){ ectQ.push({ question: row["Question"] || "", a: row["A"] || "", b: row["B"] || "", c: row["C"] || "", d: row["D"] || "", a_en: row["A_en"] || row["A"] || "", b_en: row["B_en"] || row["B"] || "", c_en: row["C_en"] || row["C"] || "", d_en: row["D_en"] || row["D"] || "", correct: (row["Correct"] || "A").toUpperCase() }); } }); if(!ectQ.length){ document.getElementById("ectQText").textContent = "Aucune question trouvée"; return; } ectUpdateCounter(); ectRender(); }) .catch(function(){ document.getElementById("ectQText").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="ect_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(ectQ.length) ectRender(); }); }); function ectGetLang(){ var el = document.querySelector('input[name="ect_lang"]:checked'); return el ? el.value : "uk"; } function ectUpdateCounter(){ var el = document.getElementById("ectProg"); if(el) el.textContent = (ectCur+1) + " / " + ectQ.length; var bar = document.getElementById("ectBar"); if(bar) bar.style.width = Math.round((ectCur+1)/ectQ.length*100) + "%"; } function ectRender(){ if(ectCur >= ectQ.length){ ectFinal(); return; } var item = ectQ[ectCur]; var lang = ectGetLang(); document.getElementById("ectQText").textContent = item.question; ectUpdateCounter(); var opts = lang === "en" ? [{key:"A",text:item.a_en},{key:"B",text:item.b_en},{key:"C",text:item.c_en},{key:"D",text:item.d_en}] : [{key:"A",text:item.a},{key:"B",text:item.b},{key:"C",text:item.c},{key:"D",text:item.d}]; var block = document.getElementById("ectOptionsBlock"); block.innerHTML = ""; opts.forEach(function(opt){ if(!opt.text) return; var btn = document.createElement("button"); btn.className = "ect-opt-btn"; btn.textContent = opt.key + ". " + opt.text; if(ectAnswers[ectCur] !== undefined){ btn.disabled = true; if(opt.key === item.correct) btn.classList.add("correct"); if(ectAnswers[ectCur] === opt.key && opt.key !== item.correct) btn.classList.add("wrong"); } else { (function(b, ok, ck){ b.onclick = function(){ ectCheck(b, ok, ck); }; })(btn, opt.key, item.correct); } block.appendChild(btn); }); } function ectCheck(btn, selectedKey, correctKey){ document.querySelectorAll(".ect-opt-btn").forEach(function(b){ b.disabled = true; }); if(selectedKey === correctKey){ btn.classList.add("correct"); ectScore++; } else { btn.classList.add("wrong"); document.querySelectorAll(".ect-opt-btn").forEach(function(b){ if(b.textContent.startsWith(correctKey + ".")) b.classList.add("correct"); }); } ectAnswers[ectCur] = selectedKey; } function ectNext(){ if(ectCur < ectQ.length - 1){ ectCur++; ectRender(); } else { ectFinal(); } } function ectPrev(){ if(ectCur > 0){ ectCur--; ectRender(); } } function ectFinal(){ document.getElementById("ectBarWrap").style.display = "none"; document.getElementById("ectLangBlock").style.display = "none"; document.getElementById("ectMainBox").style.display = "none"; document.getElementById("ectControlsBlock").style.display = "none"; document.getElementById("ectFinalScore").innerHTML = ectScore + ' / ' + ectQ.length + ''; document.getElementById("ectFinalScreen").style.display = "block"; var canvas = document.getElementById("ectConfetti"); var final = document.getElementById("ectFinalScreen"); canvas.width = final.offsetWidth; canvas.height = final.offsetHeight; var ctx = canvas.getContext("2d"); var W = canvas.width, H = canvas.height; var colors = ["#534AB7","#1D9E75","#D85A30","#D4537E","#378ADD","#BA7517"]; var particles = []; for(var i=0;i<90;i++){ particles.push({ x:Math.random()*W, y:Math.random()*H-H, w:7+Math.random()*7, h:4+Math.random()*4, color:colors[Math.floor(Math.random()*colors.length)], rot:Math.random()*360, rotSpeed:(Math.random()-0.5)*4, vy:1.5+Math.random()*2.5, vx:(Math.random()-0.5)*1.5 }); } var running = true; function draw(){ ctx.clearRect(0,0,W,H); particles.forEach(function(p){ ctx.save(); ctx.translate(p.x+p.w/2, p.y+p.h/2); ctx.rotate(p.rot*Math.PI/180); ctx.fillStyle = p.color; ctx.fillRect(-p.w/2,-p.h/2,p.w,p.h); ctx.restore(); p.y+=p.vy; p.x+=p.vx; p.rot+=p.rotSpeed; if(p.y>H){ p.y=-p.h; p.x=Math.random()*W; } }); if(running) requestAnimationFrame(draw); } draw(); setTimeout(function(){ running=false; ctx.clearRect(0,0,W,H); }, 15000); } function ectSpeak(){ if(!ectQ.length || ectCur >= ectQ.length) return; var text = ectQ[ectCur].question; if(/[а-яА-ЯёЁіІїЇєЄґҐ]/.test(text)) return; var s = new SpeechSynthesisUtterance(text); s.lang = "fr-FR"; s.rate = 0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }

Bienvenue dans le cours PRO de vocabulaire français : « Chez le médecin & Santé » !

Grâce à notre programme, vous apprendrez le vocabulaire essentiel, les expressions clés et les phrases indispensables pour prendre rendez-vous, décrire vos symptômes en toute précision, échanger sereinement avec le médecin ou le pharmacien и gérer la santé de toute votre famille en toute confiance.Nous vous souhaitons un apprentissage agréable et une totale réussite dans vos démarches de santé !

🇫🇷
fièvre
Cliquer pour basculer
🇺🇦
гарячка
Cliquer pour basculer
1 / 10
var mdWords = [ {fr:"fièvre", uk:"гарячка", en:"fever"}, {fr:"toux", uk:"кашель", en:"cough"}, {fr:"vertige", uk:"запаморочення", en:"dizziness"}, {fr:"carte vitale", uk:"карта Vitale", en:"health insurance card"}, {fr:"groupe sanguin", uk:"група крові", en:"blood type"}, {fr:"tension artérielle", uk:"артеріальний тиск", en:"blood pressure"}, {fr:"certificat médical", uk:"медична довідка", en:"medical certificate"}, {fr:"mal de tête", uk:"головний біль", en:"headache"}, {fr:"prise de sang", uk:"забір крові", en:"blood test"}, {fr:"arrêt de travail", uk:"лікарняний", en:"sick leave"} ]; var mdCur = 0; var mdCurrentLang = 'uk'; function mdSetLang(lang) { mdCurrentLang = lang; mdRender(); } function mdRender() { var w = mdWords[mdCur]; document.getElementById("mdFr").textContent = w.fr; if (mdCurrentLang === 'en') { document.getElementById("mdLangBack").textContent = "🇬🇧"; document.getElementById("mdUk").textContent = w.en; } else { document.getElementById("mdLangBack").textContent = "🇺🇦"; document.getElementById("mdUk").textContent = w.uk; } document.getElementById("mdProg").textContent = (mdCur + 1) + " / " + mdWords.length; var bar = document.getElementById("mdNativeBar"); if (bar) bar.value = mdCur + 1; var card = document.getElementById("mdCard"); if (card) card.classList.remove("flipped"); } function mdFlip() { var card = document.getElementById("mdCard"); if (card) card.classList.toggle("flipped"); } function mdNext() { if (mdCur >= mdWords.length - 1) { var cb = document.getElementById("mdCardsBlock"); var nb = document.getElementById("mdNativeBar"); var ls = document.getElementById("mdLangSwitch"); if (cb) cb.remove(); if (nb) nb.remove(); if (ls) ls.remove(); var fb = document.getElementById("mdFinishBlock"); if (fb) fb.style.display = "block"; return; } mdCur++; mdRender(); } function mdPrev() { if (mdCur > 0) { mdCur--; mdRender(); } } function mdSpeak() { var s = new SpeechSynthesisUtterance(mdWords[mdCur].fr); s.lang = "fr-FR"; s.rate = 0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); } mdRender();
🇫🇷
Chargement des mots...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var mdwWords = [], mdwCur = 0; var mdwSheetID = "14yzA7_jHpc7aD-kscCa75Z5wZ9VcIJKED7C724EJCJM"; var mdwSheetName = "Слова (Mots)"; fetch("https://opensheet.elk.sh/" + mdwSheetID + "/" + encodeURIComponent(mdwSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("mdwFrWord").textContent = "Tableau vide"; return; } mdwWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); mdwRender(); }) .catch(function(){ document.getElementById("mdwFrWord").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="mdw_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(mdwWords.length) mdwRender(); }); }); function mdwGetLang(){ var el = document.querySelector('input[name="mdw_lang"]:checked'); return el ? el.value : "uk"; } function mdwRender(){ var w = mdwWords[mdwCur]; var lang = mdwGetLang(); var frEl = document.getElementById("mdwFrWord"); frEl.classList.remove("mdw-loading"); frEl.textContent = w.fr; document.getElementById("mdwTrWord").textContent = lang === "en" ? w.en : w.uk; document.getElementById("mdwTrFlag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("mdwProg").textContent = (mdwCur+1) + " / " + mdwWords.length; document.getElementById("mdwBar").style.width = Math.round((mdwCur+1)/mdwWords.length*100) + "%"; document.getElementById("mdwCard").classList.remove("flipped"); } function mdwFlip(){ document.getElementById("mdwCard").classList.toggle("flipped"); } function mdwNext(){ mdwCur=(mdwCur+1)%mdwWords.length; mdwRender(); } function mdwPrev(){ mdwCur=(mdwCur-1+mdwWords.length)%mdwWords.length; mdwRender(); } function mdwSpeak(){ if(!mdwWords.length) return; var s = new SpeechSynthesisUtterance(mdwWords[mdwCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
🇫🇷
Chargement des phrases...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var mdpWords = [], mdpCur = 0; var mdpSheetID = "14yzA7_jHpc7aD-kscCa75Z5wZ9VcIJKED7C724EJCJM"; var mdpSheetName = "Фразы (Phrases)"; fetch("https://opensheet.elk.sh/" + mdpSheetID + "/" + encodeURIComponent(mdpSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("mdpFrWord").textContent = "Tableau vide"; return; } mdpWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); mdpRender(); }) .catch(function(){ document.getElementById("mdpFrWord").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="mdp_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(mdpWords.length) mdpRender(); }); }); function mdpGetLang(){ var el = document.querySelector('input[name="mdp_lang"]:checked'); return el ? el.value : "uk"; } function mdpRender(){ var w = mdpWords[mdpCur]; var lang = mdpGetLang(); var frEl = document.getElementById("mdpFrWord"); frEl.classList.remove("mdp-loading"); frEl.textContent = w.fr; document.getElementById("mdpTrWord").textContent = lang === "en" ? w.en : w.uk; document.getElementById("mdpTrFlag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("mdpProg").textContent = (mdpCur+1) + " / " + mdpWords.length; document.getElementById("mdpBar").style.width = Math.round((mdpCur+1)/mdpWords.length*100) + "%"; document.getElementById("mdpCard").classList.remove("flipped"); } function mdpFlip(){ document.getElementById("mdpCard").classList.toggle("flipped"); } function mdpNext(){ mdpCur=(mdpCur+1)%mdpWords.length; mdpRender(); } function mdpPrev(){ mdpCur=(mdpCur-1+mdpWords.length)%mdpWords.length; mdpRender(); } function mdpSpeak(){ if(!mdpWords.length) return; var s = new SpeechSynthesisUtterance(mdpWords[mdpCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
🇫🇷
Chargement des phrases...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var mdsWords = [], mdsCur = 0; var mdsSheetID = "14yzA7_jHpc7aD-kscCa75Z5wZ9VcIJKED7C724EJCJM"; var mdsSheetName = "Предложения (Phrases longues)"; fetch("https://opensheet.elk.sh/" + mdsSheetID + "/" + encodeURIComponent(mdsSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("mdsFrWord").textContent = "Tableau vide"; return; } mdsWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); mdsRender(); }) .catch(function(){ document.getElementById("mdsFrWord").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="mds_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(mdsWords.length) mdsRender(); }); }); function mdsGetLang(){ var el = document.querySelector('input[name="mds_lang"]:checked'); return el ? el.value : "uk"; } function mdsRender(){ var w = mdsWords[mdsCur]; var lang = mdsGetLang(); var frEl = document.getElementById("mdsFrWord"); frEl.classList.remove("mds-loading"); frEl.textContent = w.fr; document.getElementById("mdsTrWord").textContent = lang === "en" ? w.en : w.uk; document.getElementById("mdsTrFlag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("mdsProg").textContent = (mdsCur+1) + " / " + mdsWords.length; document.getElementById("mdsBar").style.width = Math.round((mdsCur+1)/mdsWords.length*100) + "%"; document.getElementById("mdsCard").classList.remove("flipped"); } function mdsFlip(){ document.getElementById("mdsCard").classList.toggle("flipped"); } function mdsNext(){ mdsCur=(mdsCur+1)%mdsWords.length; mdsRender(); } function mdsPrev(){ mdsCur=(mdsCur-1+mdsWords.length)%mdsWords.length; mdsRender(); } function mdsSpeak(){ if(!mdsWords.length) return; var s = new SpeechSynthesisUtterance(mdsWords[mdsCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
Chargement des tests...
— / —
Cours terminé

Félicitations pour votre réussite !

Merci d'avoir étudié avec nous.
Votre accès reste actif pendant 3 mois.
Nous vous souhaitons de vous sentir en confiance lors de vos prochains rendez-vous médicaux !

var mdtQ = [], mdtCur = 0, mdtScore = 0, mdtAnswers = {}; var mdtSheetID = "14yzA7_jHpc7aD-kscCa75Z5wZ9VcIJKED7C724EJCJM"; var mdtSheetName = "Тесты (Tests)"; fetch("https://opensheet.elk.sh/" + mdtSheetID + "/" + encodeURIComponent(mdtSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("mdtQText").textContent = "Le tableau est vide"; return; } data.forEach(function(row){ if(row["Question"] && row["Correct"]){ mdtQ.push({ question: row["Question"] || "", a: row["A"] || "", b: row["B"] || "", c: row["C"] || "", d: row["D"] || "", a_en: row["A_en"] || row["A"] || "", b_en: row["B_en"] || row["B"] || "", c_en: row["C_en"] || row["C"] || "", d_en: row["D_en"] || row["D"] || "", correct: (row["Correct"] || "A").toUpperCase() }); } }); if(!mdtQ.length){ document.getElementById("mdtQText").textContent = "Aucune question trouvée"; return; } mdtUpdateCounter(); mdtRender(); }) .catch(function(){ document.getElementById("mdtQText").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="mdt_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(mdtQ.length) mdtRender(); }); }); function mdtGetLang(){ var el = document.querySelector('input[name="mdt_lang"]:checked'); return el ? el.value : "uk"; } function mdtUpdateCounter(){ var el = document.getElementById("mdtProg"); if(el) el.textContent = (mdtCur+1) + " / " + mdtQ.length; var bar = document.getElementById("mdtBar"); if(bar) bar.style.width = Math.round((mdtCur+1)/mdtQ.length*100) + "%"; } function mdtRender(){ if(mdtCur >= mdtQ.length){ mdtFinal(); return; } var item = mdtQ[mdtCur]; var lang = mdtGetLang(); document.getElementById("mdtQText").textContent = item.question; mdtUpdateCounter(); var opts = lang === "en" ? [{key:"A",text:item.a_en},{key:"B",text:item.b_en},{key:"C",text:item.c_en},{key:"D",text:item.d_en}] : [{key:"A",text:item.a},{key:"B",text:item.b},{key:"C",text:item.c},{key:"D",text:item.d}]; var block = document.getElementById("mdtOptionsBlock"); block.innerHTML = ""; opts.forEach(function(opt){ if(!opt.text) return; var btn = document.createElement("button"); btn.className = "mdt-opt-btn"; btn.textContent = opt.key + ". " + opt.text; if(mdtAnswers[mdtCur] !== undefined){ btn.disabled = true; if(opt.key === item.correct) btn.classList.add("correct"); if(mdtAnswers[mdtCur] === opt.key && opt.key !== item.correct) btn.classList.add("wrong"); } else { (function(b, ok, ck){ b.onclick = function(){ mdtCheck(b, ok, ck); }; })(btn, opt.key, item.correct); } block.appendChild(btn); }); } function mdtCheck(btn, selectedKey, correctKey){ document.querySelectorAll(".mdt-opt-btn").forEach(function(b){ b.disabled = true; }); if(selectedKey === correctKey){ btn.classList.add("correct"); mdtScore++; } else { btn.classList.add("wrong"); document.querySelectorAll(".mdt-opt-btn").forEach(function(b){ if(b.textContent.startsWith(correctKey + ".")) b.classList.add("correct"); }); } mdtAnswers[mdtCur] = selectedKey; } function mdtNext(){ if(mdtCur < mdtQ.length - 1){ mdtCur++; mdtRender(); } else { mdtFinal(); } } function mdtPrev(){ if(mdtCur > 0){ mdtCur--; mdtRender(); } } function mdtFinal(){ document.getElementById("mdtBarWrap").style.display = "none"; document.getElementById("mdtLangBlock").style.display = "none"; document.getElementById("mdtMainBox").style.display = "none"; document.getElementById("mdtControlsBlock").style.display = "none"; document.getElementById("mdtFinalScore").innerHTML = mdtScore + ' / ' + mdtQ.length + ''; document.getElementById("mdtFinalScreen").style.display = "block"; var canvas = document.getElementById("mdtConfetti"); var final = document.getElementById("mdtFinalScreen"); canvas.width = final.offsetWidth; canvas.height = final.offsetHeight; var ctx = canvas.getContext("2d"); var W = canvas.width, H = canvas.height; var colors = ["#534AB7","#1D9E75","#D85A30","#D4537E","#378ADD","#BA7517"]; var particles = []; for(var i=0;i<90;i++){ particles.push({ x:Math.random()*W, y:Math.random()*H-H, w:7+Math.random()*7, h:4+Math.random()*4, color:colors[Math.floor(Math.random()*colors.length)], rot:Math.random()*360, rotSpeed:(Math.random()-0.5)*4, vy:1.5+Math.random()*2.5, vx:(Math.random()-0.5)*1.5 }); } var running = true; function draw(){ ctx.clearRect(0,0,W,H); particles.forEach(function(p){ ctx.save(); ctx.translate(p.x+p.w/2, p.y+p.h/2); ctx.rotate(p.rot*Math.PI/180); ctx.fillStyle = p.color; ctx.fillRect(-p.w/2,-p.h/2,p.w,p.h); ctx.restore(); p.y+=p.vy; p.x+=p.vx; p.rot+=p.rotSpeed; if(p.y>H){ p.y=-p.h; p.x=Math.random()*W; } }); if(running) requestAnimationFrame(draw); } draw(); setTimeout(function(){ running=false; ctx.clearRect(0,0,W,H); }, 15000); } function mdtSpeak(){ if(!mdtQ.length || mdtCur >= mdtQ.length) return; var text = mdtQ[mdtCur].question; if(/[а-яА-ЯёЁіІїЇєЄґҐ]/.test(text)) return; var s = new SpeechSynthesisUtterance(text); s.lang = "fr-FR"; s.rate = 0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }

Bienvenue dans le cours PRO de vocabulaire français : « Logement, Location & Services » !

Grâce à notre programme, vous apprendrez le vocabulaire essentiel, les expressions clés et les phrases indispensables pour chercher un logement, comprendre votre contrat de bail, échanger sereinement avec les propriétaires et les syndics, gérer vos factures d'énergie et vos démarches de livraison de colis en toute confiance.Nous vous souhaitons un apprentissage agréable et une totale réussite dans vos démarches liées au logement !

🇫🇷
loyer
Cliquer pour basculer
🇺🇦
оренда
Cliquer pour basculer
1 / 10
var lgWords = [ {fr:"loyer", uk:"оренда", en:"rent"}, {fr:"locataire", uk:"орендар", en:"tenant"}, {fr:"immeuble", uk:"будинок", en:"building"}, {fr:"compteur électrique", uk:"електролічильник", en:"electricity meter"}, {fr:"facture d'électricité", uk:"рахунок за електрику", en:"electricity bill"}, {fr:"point relais", uk:"пункт видачі", en:"pickup point"}, {fr:"code wifi", uk:"пароль вайфаю", en:"wifi password"}, {fr:"dépôt de garantie", uk:"гарантійний депозит", en:"security deposit"}, {fr:"état des lieux", uk:"акт приймання-передачі", en:"inventory of fixtures"}, {fr:"rendez-vous de visite", uk:"запис на перегляд", en:"viewing appointment"} ]; var lgCur = 0; var lgCurrentLang = 'uk'; function lgSetLang(lang) { lgCurrentLang = lang; lgRender(); } function lgRender() { var w = lgWords[lgCur]; document.getElementById("lgFr").textContent = w.fr; if (lgCurrentLang === 'en') { document.getElementById("lgLangBack").textContent = "🇬🇧"; document.getElementById("lgUk").textContent = w.en; } else { document.getElementById("lgLangBack").textContent = "🇺🇦"; document.getElementById("lgUk").textContent = w.uk; } document.getElementById("lgProg").textContent = (lgCur + 1) + " / " + lgWords.length; var bar = document.getElementById("lgNativeBar"); if (bar) bar.value = lgCur + 1; var card = document.getElementById("lgCard"); if (card) card.classList.remove("flipped"); } function lgFlip() { var card = document.getElementById("lgCard"); if (card) card.classList.toggle("flipped"); } function lgNext() { if (lgCur >= lgWords.length - 1) { var cb = document.getElementById("lgCardsBlock"); var nb = document.getElementById("lgNativeBar"); var ls = document.getElementById("lgLangSwitch"); if (cb) cb.remove(); if (nb) nb.remove(); if (ls) ls.remove(); var fb = document.getElementById("lgFinishBlock"); if (fb) fb.style.display = "block"; return; } lgCur++; lgRender(); } function lgPrev() { if (lgCur > 0) { lgCur--; lgRender(); } } function lgSpeak() { var s = new SpeechSynthesisUtterance(lgWords[lgCur].fr); s.lang = "fr-FR"; s.rate = 0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); } lgRender();
🇫🇷
Chargement des mots...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var lgwWords = [], lgwCur = 0; var lgwSheetID = "1vpzE4rNcyVWO3-93Aaz4vxB-wSKtXrarAOrBlPPKN24"; var lgwSheetName = "Слова (Mots)"; fetch("https://opensheet.elk.sh/" + lgwSheetID + "/" + encodeURIComponent(lgwSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("lgwFrWord").textContent = "Tableau vide"; return; } lgwWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); lgwRender(); }) .catch(function(){ document.getElementById("lgwFrWord").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="lgw_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(lgwWords.length) lgwRender(); }); }); function lgwGetLang(){ var el = document.querySelector('input[name="lgw_lang"]:checked'); return el ? el.value : "uk"; } function lgwRender(){ var w = lgwWords[lgwCur]; var lang = lgwGetLang(); var frEl = document.getElementById("lgwFrWord"); frEl.classList.remove("lgw-loading"); frEl.textContent = w.fr; document.getElementById("lgwTrWord").textContent = lang === "en" ? w.en : w.uk; document.getElementById("lgwTrFlag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("lgwProg").textContent = (lgwCur+1) + " / " + lgwWords.length; document.getElementById("lgwBar").style.width = Math.round((lgwCur+1)/lgwWords.length*100) + "%"; document.getElementById("lgwCard").classList.remove("flipped"); } function lgwFlip(){ document.getElementById("lgwCard").classList.toggle("flipped"); } function lgwNext(){ lgwCur=(lgwCur+1)%lgwWords.length; lgwRender(); } function lgwPrev(){ lgwCur=(lgwCur-1+lgwWords.length)%lgwWords.length; lgwRender(); } function lgwSpeak(){ if(!lgwWords.length) return; var s = new SpeechSynthesisUtterance(lgwWords[lgwCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
🇫🇷
Chargement des phrases...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var lgpWords = [], lgpCur = 0; var lgpSheetID = "1vpzE4rNcyVWO3-93Aaz4vxB-wSKtXrarAOrBlPPKN24"; var lgpSheetName = "Фразы (Phrases)"; fetch("https://opensheet.elk.sh/" + lgpSheetID + "/" + encodeURIComponent(lgpSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("lgpFrWord").textContent = "Tableau vide"; return; } lgpWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); lgpRender(); }) .catch(function(){ document.getElementById("lgpFrWord").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="lgp_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(lgpWords.length) lgpRender(); }); }); function lgpGetLang(){ var el = document.querySelector('input[name="lgp_lang"]:checked'); return el ? el.value : "uk"; } function lgpRender(){ var w = lgpWords[lgpCur]; var lang = lgpGetLang(); var frEl = document.getElementById("lgpFrWord"); frEl.classList.remove("lgp-loading"); frEl.textContent = w.fr; document.getElementById("lgpTrWord").textContent = lang === "en" ? w.en : w.uk; document.getElementById("lgpTrFlag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("lgpProg").textContent = (lgpCur+1) + " / " + lgpWords.length; document.getElementById("lgpBar").style.width = Math.round((lgpCur+1)/lgpWords.length*100) + "%"; document.getElementById("lgpCard").classList.remove("flipped"); } function lgpFlip(){ document.getElementById("lgpCard").classList.toggle("flipped"); } function lgpNext(){ lgpCur=(lgpCur+1)%lgpWords.length; lgpRender(); } function lgpPrev(){ lgpCur=(lgpCur-1+lgpWords.length)%lgpWords.length; lgpRender(); } function lgpSpeak(){ if(!lgpWords.length) return; var s = new SpeechSynthesisUtterance(lgpWords[lgpCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
🇫🇷
Chargement des phrases...
Cliquez pour retourner
🇺🇦
Cliquez pour retourner
— / —
var lgsWords = [], lgsCur = 0; var lgsSheetID = "1vpzE4rNcyVWO3-93Aaz4vxB-wSKtXrarAOrBlPPKN24"; var lgsSheetName = "Предложения (Phrases longues)"; fetch("https://opensheet.elk.sh/" + lgsSheetID + "/" + encodeURIComponent(lgsSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("lgsFrWord").textContent = "Tableau vide"; return; } lgsWords = data.map(function(row){ var vals = Object.values(row); return { fr: vals[0]||"", uk: vals[1]||"", en: vals[2]||vals[1]||"" }; }); lgsRender(); }) .catch(function(){ document.getElementById("lgsFrWord").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="lgs_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(lgsWords.length) lgsRender(); }); }); function lgsGetLang(){ var el = document.querySelector('input[name="lgs_lang"]:checked'); return el ? el.value : "uk"; } function lgsRender(){ var w = lgsWords[lgsCur]; var lang = lgsGetLang(); var frEl = document.getElementById("lgsFrWord"); frEl.classList.remove("lgs-loading"); frEl.textContent = w.fr; document.getElementById("lgsTrWord").textContent = lang === "en" ? w.en : w.uk; document.getElementById("lgsTrFlag").textContent = lang === "en" ? "🇬🇧" : "🇺🇦"; document.getElementById("lgsProg").textContent = (lgsCur+1) + " / " + lgsWords.length; document.getElementById("lgsBar").style.width = Math.round((lgsCur+1)/lgsWords.length*100) + "%"; document.getElementById("lgsCard").classList.remove("flipped"); } function lgsFlip(){ document.getElementById("lgsCard").classList.toggle("flipped"); } function lgsNext(){ lgsCur=(lgsCur+1)%lgsWords.length; lgsRender(); } function lgsPrev(){ lgsCur=(lgsCur-1+lgsWords.length)%lgsWords.length; lgsRender(); } function lgsSpeak(){ if(!lgsWords.length) return; var s = new SpeechSynthesisUtterance(lgsWords[lgsCur].fr); s.lang="fr-FR"; s.rate=0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }
Chargement des tests...
— / —
Cours terminé

Félicitations pour votre réussite !

Merci d'avoir étudié avec nous.
Votre accès reste actif pendant 3 mois.
Nous vous souhaitons de gérer votre logement et vos services du quotidien en toute confiance !

var lgtQ = [], lgtCur = 0, lgtScore = 0, lgtAnswers = {}; var lgtSheetID = "1vpzE4rNcyVWO3-93Aaz4vxB-wSKtXrarAOrBlPPKN24"; var lgtSheetName = "Тесты (Tests)"; fetch("https://opensheet.elk.sh/" + lgtSheetID + "/" + encodeURIComponent(lgtSheetName)) .then(function(r){ return r.json(); }) .then(function(data){ if(!Array.isArray(data) || !data.length){ document.getElementById("lgtQText").textContent = "Le tableau est vide"; return; } data.forEach(function(row){ if(row["Question"] && row["Correct"]){ lgtQ.push({ question: row["Question"] || "", a: row["A"] || "", b: row["B"] || "", c: row["C"] || "", d: row["D"] || "", a_en: row["A_en"] || row["A"] || "", b_en: row["B_en"] || row["B"] || "", c_en: row["C_en"] || row["C"] || "", d_en: row["D_en"] || row["D"] || "", correct: (row["Correct"] || "A").toUpperCase() }); } }); if(!lgtQ.length){ document.getElementById("lgtQText").textContent = "Aucune question trouvée"; return; } lgtUpdateCounter(); lgtRender(); }) .catch(function(){ document.getElementById("lgtQText").textContent = "Erreur de chargement"; }); document.querySelectorAll('input[name="lgt_lang"]').forEach(function(radio){ radio.addEventListener("change", function(){ if(lgtQ.length) lgtRender(); }); }); function lgtGetLang(){ var el = document.querySelector('input[name="lgt_lang"]:checked'); return el ? el.value : "uk"; } function lgtUpdateCounter(){ var el = document.getElementById("lgtProg"); if(el) el.textContent = (lgtCur+1) + " / " + lgtQ.length; var bar = document.getElementById("lgtBar"); if(bar) bar.style.width = Math.round((lgtCur+1)/lgtQ.length*100) + "%"; } function lgtRender(){ if(lgtCur >= lgtQ.length){ lgtFinal(); return; } var item = lgtQ[lgtCur]; var lang = lgtGetLang(); document.getElementById("lgtQText").textContent = item.question; lgtUpdateCounter(); var opts = lang === "en" ? [{key:"A",text:item.a_en},{key:"B",text:item.b_en},{key:"C",text:item.c_en},{key:"D",text:item.d_en}] : [{key:"A",text:item.a},{key:"B",text:item.b},{key:"C",text:item.c},{key:"D",text:item.d}]; var block = document.getElementById("lgtOptionsBlock"); block.innerHTML = ""; opts.forEach(function(opt){ if(!opt.text) return; var btn = document.createElement("button"); btn.className = "lgt-opt-btn"; btn.textContent = opt.key + ". " + opt.text; if(lgtAnswers[lgtCur] !== undefined){ btn.disabled = true; if(opt.key === item.correct) btn.classList.add("correct"); if(lgtAnswers[lgtCur] === opt.key && opt.key !== item.correct) btn.classList.add("wrong"); } else { (function(b, ok, ck){ b.onclick = function(){ lgtCheck(b, ok, ck); }; })(btn, opt.key, item.correct); } block.appendChild(btn); }); } function lgtCheck(btn, selectedKey, correctKey){ document.querySelectorAll(".lgt-opt-btn").forEach(function(b){ b.disabled = true; }); if(selectedKey === correctKey){ btn.classList.add("correct"); lgtScore++; } else { btn.classList.add("wrong"); document.querySelectorAll(".lgt-opt-btn").forEach(function(b){ if(b.textContent.startsWith(correctKey + ".")) b.classList.add("correct"); }); } lgtAnswers[lgtCur] = selectedKey; } function lgtNext(){ if(lgtCur < lgtQ.length - 1){ lgtCur++; lgtRender(); } else { lgtFinal(); } } function lgtPrev(){ if(lgtCur > 0){ lgtCur--; lgtRender(); } } function lgtFinal(){ document.getElementById("lgtBarWrap").style.display = "none"; document.getElementById("lgtLangBlock").style.display = "none"; document.getElementById("lgtMainBox").style.display = "none"; document.getElementById("lgtControlsBlock").style.display = "none"; document.getElementById("lgtFinalScore").innerHTML = lgtScore + ' / ' + lgtQ.length + ''; document.getElementById("lgtFinalScreen").style.display = "block"; var canvas = document.getElementById("lgtConfetti"); var final = document.getElementById("lgtFinalScreen"); canvas.width = final.offsetWidth; canvas.height = final.offsetHeight; var ctx = canvas.getContext("2d"); var W = canvas.width, H = canvas.height; var colors = ["#534AB7","#1D9E75","#D85A30","#D4537E","#378ADD","#BA7517"]; var particles = []; for(var i=0;i<90;i++){ particles.push({ x:Math.random()*W, y:Math.random()*H-H, w:7+Math.random()*7, h:4+Math.random()*4, color:colors[Math.floor(Math.random()*colors.length)], rot:Math.random()*360, rotSpeed:(Math.random()-0.5)*4, vy:1.5+Math.random()*2.5, vx:(Math.random()-0.5)*1.5 }); } var running = true; function draw(){ ctx.clearRect(0,0,W,H); particles.forEach(function(p){ ctx.save(); ctx.translate(p.x+p.w/2, p.y+p.h/2); ctx.rotate(p.rot*Math.PI/180); ctx.fillStyle = p.color; ctx.fillRect(-p.w/2,-p.h/2,p.w,p.h); ctx.restore(); p.y+=p.vy; p.x+=p.vx; p.rot+=p.rotSpeed; if(p.y>H){ p.y=-p.h; p.x=Math.random()*W; } }); if(running) requestAnimationFrame(draw); } draw(); setTimeout(function(){ running=false; ctx.clearRect(0,0,W,H); }, 15000); } function lgtSpeak(){ if(!lgtQ.length || lgtCur >= lgtQ.length) return; var text = lgtQ[lgtCur].question; if(/[а-яА-ЯёЁіІїЇєЄґҐ]/.test(text)) return; var s = new SpeechSynthesisUtterance(text); s.lang = "fr-FR"; s.rate = 0.9; speechSynthesis.cancel(); speechSynthesis.speak(s); }

Conditions d’utilisation de la plateforme

1. Objet de la plateforme
La plateforme a pour objectif de faciliter l’apprentissage du français grâce à différents contenus pédagogiques.
Les contenus peuvent notamment comprendre :vocabulaire thématique ;cartes de mémorisation ;phrases et expressions ;dialogues ;exercices interactifs ;questionnaires et tests ;contenus audio ou visuels ;ainsi que tout autre support destiné à améliorer les compétences linguistiques de l’utilisateur.2. Accès à la plateforme
L’accès à certains contenus peut être gratuit.
L’accès aux contenus premium est accordé après validation du paiement correspondant.Les modalités tarifaires, les abonnements, la durée d’accès et les moyens de paiement sont indiqués sur les pages concernées.3. Compte utilisateur
Lorsque la création d’un compte est nécessaire, l’utilisateur s’engage à fournir des informations exactes et à jour.
L’utilisateur est responsable de la confidentialité de ses identifiants de connexion.Toute activité réalisée depuis son compte est réputée avoir été effectuée par lui.4. Utilisation autorisée
L’utilisateur est autorisé à :
consulter les contenus pédagogiques ;utiliser les outils d’apprentissage proposés ;suivre sa progression ;contacter le support en cas de problème technique.L’utilisation est exclusivement personnelle.5. Utilisation interdite
Il est interdit de :
partager son compte avec des tiers ;copier ou reproduire les contenus ;vendre ou redistribuer les contenus ;enregistrer massivement les ressources pédagogiques ;contourner les mesures techniques de protection ;utiliser la plateforme à des fins illégales.6. Propriété intellectuelle
Tous les contenus présents sur la plateforme sont protégés par les lois relatives à la propriété intellectuelle.
Cela comprend notamment :textes ;vocabulaire ;traductions ;exercices ;questionnaires ;illustrations ;icônes ;logos ;vidéos ;fichiers audio ;interface graphique ;design ;code source.Toute reproduction totale ou partielle sans autorisation écrite est interdite.7. Paiement et Abonnements
Les paiements sont réalisés via des prestataires sécurisés proposés sur la plateforme.
L’accès aux contenus payants s’effectue sous forme d’abonnement trimestriel (tous les 3 mois) avec renouvellement automatique, sauf résiliation par l’utilisateur avant la date d’échéance.Absence de droit de rétractation et remboursement :Conformément à l’article L.221-28 du Code de la consommation, l’utilisateur accepte expressément que l’exécution du service commence immédiatement après la confirmation du paiement et renonce expressément à son droit de rétractation. L’activation de l’accès aux contenus numériques étant immédiate, aucun remboursement ne sera effectué.8. Politique de remboursement
Les contenus payants étant des produits numériques à accès immédiat, aucun remboursement n’est accordé après l'activation de l’accès, sauf disposition légale impérative contraire.
9. Disponibilité du service
L’éditeur met tout en œuvre pour assurer la disponibilité de la plateforme.
Toutefois, aucune garantie n’est donnée concernant :une disponibilité permanente ;l’absence totale d’interruptions ;l’absence d’erreurs techniques.Des opérations de maintenance peuvent être réalisées sans préavis.10. Limitation de responsabilité
La plateforme constitue un outil pédagogique.
Elle ne garantit pas :la réussite à un examen ;l’obtention d’un emploi ;un niveau linguistique particulier.L’utilisateur reste seul responsable de son apprentissage et de l’utilisation des connaissances acquises.L’éditeur ne pourra être tenu responsable des dommages directs ou indirects résultant de l’utilisation de la plateforme.11. Données personnelles
Les données personnelles sont traitées conformément à la Politique de confidentialité.
L’utilisateur dispose des droits prévus par le Règlement Général sur la Protection des Données (RGPD).12. Résiliation de l’abonnement
L’utilisateur peut annuler le renouvellement automatique de son abonnement à tout moment avant la prochaine date de facturation, directement depuis son espace client ou en contactant le support.
Important : La résiliation n’entraîne aucun remboursement de la période en cours. La résiliation stoppe uniquement les prélèvements futurs. L’utilisateur conserve l’accès à l’ensemble des contenus jusqu’à la fin de la période de 3 mois déjà payée.13. Force majeure
L’éditeur ne pourra être tenu responsable de l’inexécution de ses obligations en cas de force majeure, notamment :
catastrophe naturelle ;panne générale d’Internet ;conflit social ;guerre ;décision administrative ;panne majeure des services tiers.14. Modification des Conditions
Les présentes Conditions peuvent être modifiées à tout moment.
La nouvelle version entre en vigueur dès sa publication sur la plateforme.15. Droit applicable
Les présentes Conditions sont régies par le droit français.
En cas de litige, les parties rechercheront une solution amiable avant toute procédure judiciaire.À défaut d’accord, les tribunaux français seront compétents.16. Contact
Pour toute question concernant la plateforme :
E-mail : [email protected]17. Langues disponibles
La plateforme peut être proposée dans plusieurs langues.
Le contenu pédagogique peut varier selon la langue sélectionnée, sans modifier la finalité pédagogique du service.18. Acceptation
En utilisant la plateforme, l’utilisateur reconnaît avoir lu, compris et accepté l’ensemble des présentes Conditions générales d’utilisation.

PRO — Détails du cours

Que comprend le cours ?

✅ Plus de 500 mots, expressions et phrases utiles (français / langue de traduction)✅ 40 quiz interactifs pour tester vos connaissances✅ Un vocabulaire soigneusement organisé par thème✅ Des cartes d’apprentissage simples et efficaces✅ Un accès depuis un téléphone, une tablette ou un ordinateur✅ Abonnement 3 mois (renouvellement automatique, annulation en 1 clic)

Pourquoi 3 mois / 90 jours ?

Nos cours sont conçus comme des programmes intensifs de préparation à un objectif professionnel ou à une situation précise, et non comme un apprentissage de la langue française sans limite de durée.

90 jours permettent de :
🔶 apprendre le vocabulaire et les expressions essentiels ;
🔶 mémoriser progressivement les connaissances sans surcharge ;🔶 comprendre les questions et les réponses les plus courantes ;🔶 se préparer à un examen, un entretien d’embauche ou une situation spécifique ;🔶 se concentrer sur le vocabulaire réellement nécessaire, sans informations superflues.

Notre objectif n’est pas de vous faire apprendre le français pendant des années, mais de vous donner les mots et expressions dont vous avez besoin, au moment où vous en avez besoin.

À qui s'adresse ce cours ?

🔹 aux personnes qui souhaitent enrichir leur vocabulaire en français ;
🔹 à celles qui apprennent le français pour le travail, les études ou la vie quotidienne ;
🔹 aux personnes préparant un examen, un entretien d'embauche ou toute autre situation nécessitant un vocabulaire spécifique ;
🔹 à toute personne désirant progresser en français grâce à un apprentissage pratique.

Ce que ce cours n'est pas

❌ Ce n'est pas un cours complet de langue française.❌ Ce n'est pas une formation officielle ni un remplacement d'un professeur ou d'un organisme de formation.✅ C'est un outil pratique permettant d'apprendre rapidement le vocabulaire français à travers des mots, des expressions, des phrases et des quiz interactifs.

Prix

Le prix dépend du cours sélectionné.

Abonnement tous les 3 moisSans engagement : annulez quand vous voulez en un clic.

Contactez-nous