Francuski U 100 Lekcija Pdf May 2026
<script> // ------------------------------------------------------------ // 1. GENERIŠI 100 LEKCIJA (naslovi na francuskom + prevod) // Realistični tematski naslovi za "Francuski u 100 lekcija" // ------------------------------------------------------------ const lessonTitles = []; const themes = [ "Uvod i pozdravi", "Abeceda i izgovor", "Brojevi 1-20", "Brojevi 20-100", "Dani u nedelji", "Mjeseci i godišnja doba", "Vrijeme i sat", "Porodica i rodbina", "Opisivanje ljudi", "Boje i pridevi", "Glagol biti (être)", "Glagol imati (avoir)", "Obični glagoli -er", "Obični glagoli -ir", "Obični glagoli -re", "Negacija (ne...pas)", "Pitanja (est-ce que)", "Lične zamjenice", "Prisvojni pridevi", "Pokazne zamjenice", "Određeni i neodređeni član", "Djelomični član", "Pravljenje množine", "Rod imenica", "Opis doma", "Namještaj i sobe", "Hrana i piće", "U restoranu", "Naručivanje jela", "Voće i povrće", "Odjeća i moda", "Trgovina i cijene", "Putovanje i smjerovi", "Grad i mjesta", "Prijevoz (metro, autobus)", "U hotelu", "Na aerodromu", "Izlet i priroda", "Sport i slobodno vrijeme", "Hobiji i interesovanja", "Posao i zanimanja", "Intervju za posao", "Pisanje emaila", "Telefonski razgovor", "Medicina i kod doktora", "Dijelovi tijela", "Hitni slučajevi", "Vrijeme i prognoza", "Buduće vrijeme (futur proche)", "Futur simple", "Prošlo vrijeme (passé composé)", "Nepravilni participi", "Imperfekat (imparfait)", "Poređenje vremena", "Imperativ", "Kondicional (želje)", "Subjonctif (uvod)", "Vežbanje subjonctiva", "Prilozi vremena", "Prilozi mjesta", "Poređenje prideva", "Superlativ", "Veznici i povezivanje", "Izražavanje mišljenja", "Slaganje sa sagovornikom", "Francuski izrazi (locutions)", "Poslovice i izreke", "Kultura i običaji", "Praznici u Francuskoj", "Istorija Francuske", "Poznate ličnosti", "Književnost i citati", "Pjesme i poezija", "Gledanje filmova na francuskom", "Pisanje priče", "Opis fotografije", "Razgovor na poslu", "Poziv u administraciji", "Iznajmljivanje stana", "Prijateljski susret", "Pravljenje planova", "Izvinjenje i izgovori", "Ljutnja i emocije", "Sreća i iznenađenje", "Razlika između francuskog u Kanadi", "Sleng i kolokvijalni izrazi", "Skraćenice (SMS)", "Prezentacija sebe", "Opis dnevne rutine", "Hronologija događaja", "Komparacija kultura", "Prevodi i jezičke zamke", "Lažni prijatelji", "Ponavljanje: glagoli", "Ponavljanje: padeži (odnosi)", "Završni test znanja", "Konverzacija 1: Upoznavanje", "Konverzacija 2: Putovanje", "Konverzacija 3: Posao", "Čitanje vijesti", "Pisanje rezimea" ]; // Make exactly 100 titles for (let i = 1; i <= 100; i++) let title = themes[i-1] // final check length while(lessonTitles.length < 100) lessonTitles.push( Lekcija $lessonTitles.length+1: Praktična vežba );
// ------------------------------------------------------------ // 2. LOCALSTORAGE za napredak i za fraze (po lekcijama) // ------------------------------------------------------------ let completed = new Array(100).fill(false); let lessonPhrases = new Array(100).fill(""); // čuva francuske fraze francuski u 100 lekcija pdf
// Odabrana lekcija za fraze let selectedLessonIndex = null; const utterance = new SpeechSynthesisUtterance(text)
// ------------------------------------------------------------ // 3. SPEECH SYNTHESIS (francuski izgovor) // ------------------------------------------------------------ function speakFrench(text) if (!window.speechSynthesis) alert("Vaš browser ne podržava govor."); return; const utterance = new SpeechSynthesisUtterance(text); utterance.lang = "fr-FR"; utterance.rate = 0.9; window.speechSynthesis.cancel(); // izbjegni preklapanje window.speechSynthesis.speak(utterance); utterance.lang = "fr-FR"
function speakSavedPhrase() phrase.trim() === "") alert("Nema sačuvane fraze za ovu lekciju. Prvo unesite frazu."); return; speakFrench(phrase);
// Snimi frazu za trenutnu lekciju function saveCurrentPhrase() if(selectedLessonIndex === null) alert("Prvo kliknite na naziv lekcije da je odaberete."); return; const newPhrase = document.getElementById("phraseText").value.trim(); lessonPhrases[selectedLessonIndex] = newPhrase; saveProgress(); // osvježi prikaz const previewSpan = document.getElementById("existingPhraseSpan"); if(newPhrase) previewSpan.innerText = `"$newPhrase"`; else previewSpan.innerText = "(nema sačuvane fraze)"; alert("Fraza sačuvana za " + lessonTitles[selectedLessonIndex]);