Czech Verb Conjugation Tool

Verb and Tense Selection

This tool supports a selection of common Czech verbs.

Conjugation Results

Select a verb and tense on Tab 1 to see conjugation.

Select a verb and tense on Tab 1 to see conjugation.

'; if(czconj_domElements.resultsHeader) czconj_domElements.resultsHeader.innerHTML = ''; if(czconj_domElements.verbNotes) { czconj_domElements.verbNotes.innerHTML = ''; czconj_domElements.verbNotes.classList.add('czconj-hidden'); } } if(czconj_domElements.pdfDownloadBtn) czconj_domElements.pdfDownloadBtn.classList.add('czconj-hidden'); } } function czconj_navigateToTab(targetTabId) { let proceed = true; if (targetTabId === 'czconj-tab2') { // Moving from Tab 1 to Tab 2 proceed = czconj_validateTab1(); } if (proceed) { const targetTabButton = document.querySelector(`.czconj-tab-link[data-tab="${targetTabId}"]`); if (targetTabButton) targetTabButton.click(); // This will call czconj_switchTab } } function czconj_displayConjugation() { if (!czconj_domElements.resultsContainer || !czconj_domElements.resultsHeader || !czconj_domElements.verbNotes) return; if (!czconj_validateTab1()) { // Re-validate before displaying czconj_domElements.resultsHeader.innerHTML = ''; czconj_domElements.resultsContainer.innerHTML = '

Please select a verb and tense/mood on Tab 1.

'; czconj_domElements.verbNotes.classList.add('czconj-hidden'); czconj_domElements.pdfDownloadBtn.classList.add('czconj-hidden'); return; } const selectedVerbKey = czconj_domElements.verbSelect.value; const selectedTenseKey = czconj_domElements.tenseMoodSelect.value; const selectedTenseText = czconj_domElements.tenseMoodSelect.options[czconj_domElements.tenseMoodSelect.selectedIndex].text; const verbEntry = czconj_verbDatabase[selectedVerbKey]; if (!verbEntry) { czconj_domElements.resultsHeader.innerHTML = `

Error

`; czconj_domElements.resultsContainer.innerHTML = `

Conjugation for "${selectedVerbKey}" is not available in this tool.

`; czconj_domElements.verbNotes.classList.add('czconj-hidden'); czconj_domElements.pdfDownloadBtn.classList.add('czconj-hidden'); return; } czconj_domElements.resultsHeader.innerHTML = `

Conjugation for: ${selectedVerbKey}

Tense/Mood: ${selectedTenseText}

`; let tableHTML = ``; const persons = { sg1: "Já (I)", sg2: "Ty (you sg.)", sg3: "On/Ona/Ono (he/she/it)", pl1: "My (we)", pl2: "Vy (you pl./formal)", pl3: "Oni/Ony/Ona (they)" }; let conjugationDataForPdf = []; // For PDF generation if (selectedTenseKey === "present") { const forms = verbEntry.tenses.present; if (forms) { for (const pKey in persons) { tableHTML += ``; conjugationDataForPdf.push({person: persons[pKey], form: forms[pKey] || 'N/A'}); } } else { tableHTML += ``; conjugationDataForPdf.push({person: "N/A", form: "Present tense not available"});} } else if (selectedTenseKey === "past") { const pastForms = verbEntry.tenses.past; if (pastForms) { tableHTML += ``; tableHTML += ``; tableHTML += ``; tableHTML += ``; tableHTML += ``; tableHTML += ``; // For PDF: conjugationDataForPdf.push({person: "Já (I)", form: pastForms.sg1 || `${pastForms.sg.m}/${pastForms.sg.f}/${pastForms.sg.n}`}); conjugationDataForPdf.push({person: "Ty (you sg.)", form: pastForms.sg2 || `${pastForms.sg.m}/${pastForms.sg.f}/${pastForms.sg.n}`}); conjugationDataForPdf.push({person: "On (he)", form: pastForms.sg.m}); conjugationDataForPdf.push({person: "Ona (she)", form: pastForms.sg.f}); conjugationDataForPdf.push({person: "Ono (it)", form: pastForms.sg.n}); conjugationDataForPdf.push({person: "My (we)", form: pastForms.pl1 || `${pastForms.pl.m_anim}/${pastForms.pl.f_minan}/${pastForms.pl.n}`}); conjugationDataForPdf.push({person: "Vy (you pl./formal)", form: pastForms.pl2 || `${pastForms.pl.m_anim}/${pastForms.pl.f_minan}/${pastForms.pl.n}`}); conjugationDataForPdf.push({person: "Oni (they, m.anim)", form: pastForms.pl.m_anim}); conjugationDataForPdf.push({person: "Ony (they, f./m.inan)", form: pastForms.pl.f_minan}); conjugationDataForPdf.push({person: "Ona (they, n.)", form: pastForms.pl.n}); } else { tableHTML += ``; conjugationDataForPdf.push({person: "N/A", form: "Past tense not available"});} } else if (selectedTenseKey === "future") { const futureInfo = verbEntry.tenses.future; const futureForms = (verbEntry.tenses.present_is_future || (futureInfo && futureInfo.type === "specific_future" ? futureInfo.forms : null)); if (futureInfo && futureInfo.type === "compound") { const base = verbEntry.infinitive_for_future || selectedVerbKey; const buduForms = czconj_verbDatabase["být"].tenses.future; for (const pKey in persons) { tableHTML += ``; conjugationDataForPdf.push({person: persons[pKey], form: `${buduForms[pKey]} ${base}`}); } } else if (futureForms) { // Handles present_is_future or specific_future forms for (const pKey in persons) { tableHTML += ``; conjugationDataForPdf.push({person: persons[pKey], form: futureForms[pKey] || 'N/A'}); } } else { tableHTML += ``; conjugationDataForPdf.push({person: "N/A", form: "Future tense not directly available"});} } else if (selectedTenseKey === "imperative") { const forms = verbEntry.tenses.imperative; if (forms) { tableHTML += ``; tableHTML += ``; tableHTML += ``; conjugationDataForPdf.push({person: "Ty (you sg.)", form: forms.sg2 || 'N/A'}); conjugationDataForPdf.push({person: "My (we)", form: forms.pl1 || 'N/A'}); conjugationDataForPdf.push({person: "Vy (you pl./formal)", form: forms.pl2 || 'N/A'}); } else { tableHTML += ``; conjugationDataForPdf.push({person: "N/A", form: "Imperative not available"});} } tableHTML += `
Person/NumberConjugated Form
${persons[pKey]}${forms[pKey] || 'N/A'}
Present tense not available for this verb.
Já (I)${pastForms.sg1 || czconj_formatPastTense(pastForms, 'sg1')}
Ty (you sg.)${pastForms.sg2 || czconj_formatPastTense(pastForms, 'sg2')}
On/Ona/Ono${czconj_formatPastTense(pastForms, 'sg3')}
My (we)${pastForms.pl1 || czconj_formatPastTense(pastForms, 'pl1')}
Vy (you pl./formal)${pastForms.pl2 || czconj_formatPastTense(pastForms, 'pl2')}
Oni/Ony/Ona (they)${czconj_formatPastTense(pastForms, 'pl3')}
Past tense not available for this verb.
${persons[pKey]}${buduForms[pKey]} ${base}
${persons[pKey]}${futureForms[pKey] || 'N/A'}
Future tense not directly available or defined differently for this verb type. Perfective verbs often use present tense for future meaning.
Ty (you sg.)${forms.sg2 || 'N/A'}
My (we)${forms.pl1 || 'N/A'}
Vy (you pl./formal)${forms.pl2 || 'N/A'}
Imperative not available for this verb.
`; czconj_domElements.resultsContainer.innerHTML = tableHTML; // Store data for PDF czconj_domElements.pdfDownloadBtn.dataset.conjugationData = JSON.stringify(conjugationDataForPdf); czconj_domElements.pdfDownloadBtn.dataset.verb = selectedVerbKey; czconj_domElements.pdfDownloadBtn.dataset.tense = selectedTenseText; if (verbEntry.notes) { czconj_domElements.verbNotes.innerHTML = `Note: ${verbEntry.notes}`; czconj_domElements.verbNotes.classList.remove('czconj-hidden'); } else { czconj_domElements.verbNotes.innerHTML = ''; czconj_domElements.verbNotes.classList.add('czconj-hidden'); } czconj_domElements.pdfDownloadBtn.classList.remove('czconj-hidden'); } function czconj_hexToRgb(hex) { // Implementation as provided in previous tools if (!hex || typeof hex !== 'string') return null; const shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; hex = hex.replace(shorthandRegex, function(m, r, g, b) { return r + r + g + g + b + b; }); const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); return result ? { r: parseInt(result[1], 16), g: parseInt(result[2], 16), b: parseInt(result[3], 16) } : null; } function czconj_generatePdf() { if (typeof window.jspdf === 'undefined' || typeof window.jspdf.jsPDF === 'undefined' || typeof window.jspdf.jsPDF.API === 'undefined' || typeof window.jspdf.jsPDF.API.autoTable === 'undefined') { alert("PDF generation library is not loaded. Please try again later."); return; } const conjugationDataString = czconj_domElements.pdfDownloadBtn.dataset.conjugationData; const verb = czconj_domElements.pdfDownloadBtn.dataset.verb; const tense = czconj_domElements.pdfDownloadBtn.dataset.tense; if (!conjugationDataString || !verb || !tense) { alert("No conjugation data to download. Please conjugate a verb first."); return; } const conjugationDataForPdf = JSON.parse(conjugationDataString); const ActualJsPDF = window.jspdf.jsPDF; const doc = new ActualJsPDF(); const primaryColorRGB = czconj_hexToRgb(getComputedStyle(document.documentElement).getPropertyValue('--czconj-primary-color').trim()) || {r:211,g:47,b:47}; const secondaryColorRGB = czconj_hexToRgb(getComputedStyle(document.documentElement).getPropertyValue('--czconj-secondary-color').trim()) || {r:13,g:71,b:161}; doc.setFontSize(18); doc.setTextColor(primaryColorRGB.r, primaryColorRGB.g, primaryColorRGB.b); doc.text(`Czech Verb Conjugation: ${verb}`, 105, 20, { align: 'center' }); doc.setFontSize(14); doc.setTextColor(secondaryColorRGB.r, secondaryColorRGB.g, secondaryColorRGB.b); doc.text(`Tense/Mood: ${tense}`, 105, 28, { align: 'center' }); let startY = 40; const tableHeadFillColor = [secondaryColorRGB.r, secondaryColorRGB.g, secondaryColorRGB.b]; const bodyStylesPDF = { fontSize: 10, cellPadding: 2.5, textColor: [33,33,33] }; const headStylesPDF = { fillColor: tableHeadFillColor, textColor: 255, fontSize: 11, fontStyle: 'bold' }; const tableBody = conjugationDataForPdf.map(item => [item.person, item.form]); doc.autoTable({ startY: startY, head: [['Person/Number', 'Conjugated Form']], body: tableBody, theme: 'grid', styles: bodyStylesPDF, headStyles: headStylesPDF, columnStyles: { 0: { cellWidth: 60, fontStyle: 'bold' }, 1: { cellWidth: 'auto' } }, didDrawPage: function (data) { // Add footer to each page doc.setFontSize(9); doc.setTextColor(150); doc.text(`Report generated: ${new Date().toLocaleDateString()}`, 14, doc.internal.pageSize.height - 10); } }); startY = doc.autoTable.previous.finalY + 10; const verbEntryForNotes = czconj_verbDatabase[verb]; if (verbEntryForNotes && verbEntryForNotes.notes) { doc.setFontSize(10); doc.setTextColor(secondaryColorRGB.r, secondaryColorRGB.g, secondaryColorRGB.b); doc.text("Notes:", 14, startY); startY +=5; doc.setFontSize(9); doc.setTextColor(51,51,51); const splitNotes = doc.splitTextToSize(verbEntryForNotes.notes, doc.internal.pageSize.width - 28); doc.text(splitNotes, 14, startY); } doc.save(`Czech_Conjugation_${verb}_${tense.replace(/[^a-z0-9]/gi, '_')}.pdf`); } // Make functions globally accessible for HTML onclick attributes window.czconj_switchTab = czconj_switchTab; window.czconj_navigateToTab = czconj_navigateToTab; window.czconj_generatePdf = czconj_generatePdf; // czconj_displayConjugation is called by navigateToTab indirectly, so it's fine.

Learning a new language can be an exciting journey, and for those delving into Czech, understanding how verbs change is a key part of becoming fluent. The Czech language, like many others, has a system where verbs alter their form depending on who is performing the action, when it’s happening, and the specific mood or intention. This can seem a bit tricky at first, with various endings and patterns to remember. That’s where a reliable tool comes in handy to simplify the process and help you grasp these rules without getting overwhelmed.

Our Czech Verb Conjugation Tool is designed to be your go-to resource for mastering Czech verbs. We understand that you want a straightforward way to see how verbs transform, so we’ve built this tool to be as user-friendly as possible. You don’t need to be a grammar expert or spend hours sifting through textbooks. Instead, you can quickly look up conjugations and build your confidence in using Czech verbs correctly in different situations. Whether you’re a student, a traveler, or just someone curious about the Czech language, this tool is here to support your learning.

Using the tool is incredibly simple. You start by selecting the verb you want to conjugate from a clear and organized list. We’ve included a selection of common Czech verbs that you’re likely to encounter in everyday conversations and texts. Once you’ve chosen your verb, the next step is to pick the tense or mood you’re interested in. Do you want to see how the verb behaves in the present, future, or past? Or perhaps you’re exploring the nuances of conditional or imperative moods? Our tool allows you to specify exactly what you need. This two-step process makes it easy to pinpoint the exact conjugation you’re looking for, giving you relevant results every time.

Once you’ve made your selections, simply click the “Conjugate” button, and the tool will instantly display the conjugated forms. This immediate feedback is incredibly valuable for learning. You can see patterns emerge, compare different conjugations, and reinforce your understanding of Czech grammar. The goal is to make verb conjugation less of a chore and more of an intuitive part of your language learning. By providing clear and accurate results, our Czech Verb Conjugation Tool empowers you to practice, learn, and confidently use Czech verbs in your speaking and writing. It’s a reliable companion on your path to mastering this beautiful language, making the often complex world of verb conjugations approachable and easy to navigate.

Scroll to Top