Online Pronoun & Gender Language Identifier

Pronoun & Gender Language Identifier

Analyze text for gendered language and get suggestions for inclusivity.

Neutral Pronouns (they/them/their): ${pa.neutral}

`; if (data.genderedTerms.length > 0) { termsPane.innerHTML = ` ${data.genderedTerms.map(t => ` `).join('')}
TermGenderInclusive Alternative
${t.term}${t.gender}${t.inclusiveAlternative}
`; } else { termsPane.innerHTML = `

No specific gendered terms were identified.

`; } analysisContent.style.display = 'block'; setActiveTab(0); }; const setActiveTab = (index) => { if (index < 0 || index >= tabButtons.length) return; currentTabIndex = index; tabButtons.forEach((btn, i) => btn.classList.toggle('active', i === index)); tabPanes.forEach((pane, i) => pane.classList.toggle('hidden', i !== index)); prevBtn.disabled = index === 0; nextBtn.disabled = index === tabButtons.length - 1; }; const showError = (message) => { apiErrorMessage.textContent = message; apiErrorMessage.style.display = 'block'; resultsContainer.style.display = 'none'; }; const hideError = () => { apiErrorMessage.style.display = 'none'; }; // --- PDF Generation --- async function generatePdf() { const { text, pronounAnalysis, genderedTerms, overallAnalysis } = lastResult; if (!text) return; const termsTable = genderedTerms.length > 0 ? ` ${genderedTerms.map(t => ``).join('')}
TermGenderAlternative
${t.term}${t.gender}${t.inclusiveAlternative}
` : `

No specific gendered terms were identified.

`; pdfContentArea.innerHTML = `

Gender Language Report

Overall Analysis

${overallAnalysis}

Pronoun Usage

Masculine: ${pronounAnalysis.masculine}

Feminine: ${pronounAnalysis.feminine}

Neutral: ${pronounAnalysis.neutral}

Gendered Terms & Suggestions

${termsTable} `; pdfContentArea.style.display = 'block'; pdfContentArea.style.position = 'absolute'; pdfContentArea.style.left = '-9999px'; pdfContentArea.style.width = '800px'; try { const canvas = await html2canvas(pdfContentArea, { scale: 2 }); const imgData = canvas.toDataURL('image/png'); const { jsPDF } = window.jspdf; const pdf = new jsPDF({ orientation: 'portrait', unit: 'px', format: 'a4' }); const pdfWidth = pdf.internal.pageSize.getWidth(); const imgHeight = canvas.height * pdfWidth / canvas.width; pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, imgHeight); pdf.save(`Gender-Language-Report.pdf`); } catch (error) { console.error("PDF generation failed:", error); alert("Could not generate PDF."); } finally { pdfContentArea.style.display = 'none'; } } // --- Event Listeners --- analyzeBtn.addEventListener('click', getAnalysis); tabButtons.forEach((btn, i) => btn.addEventListener('click', () => setActiveTab(i))); prevBtn.addEventListener('click', () => setActiveTab(currentTabIndex - 1)); nextBtn.addEventListener('click', () => setActiveTab(currentTabIndex + 1)); downloadPdfBtn.addEventListener('click', generatePdf); });
Scroll to Top