// Hilfen der Englisch-Tests (nur Tests importieren sie): die sichtbaren Texte eines Teilbaums und die deutschen Texte, die auf einer // englischen Seite noch darin stehen. import { EN } from './en'; /** Alle sichtbaren Texte (Textknoten) und Textattribute unter `root`. */ export function texts(root: ParentNode): string[] { const out: string[] = []; const walker = document.createTreeWalker(root as Node, NodeFilter.SHOW_TEXT); for (let node = walker.nextNode(); node; node = walker.nextNode()) if (node.textContent?.trim()) out.push(node.textContent.trim()); for (const el of root.querySelectorAll('*')) { for (const attr of ['aria-label', 'title', 'placeholder', 'alt']) if (el.getAttribute(attr)) out.push(el.getAttribute(attr) as string); } return out; } /** Deutsche Wörterbuchtexte, die auf einer englischen Seite stehen: also Texte, die an `t()` vorbeigegangen sind. */ export const germanLeft = (root: ParentNode): string[] => texts(root).filter((text) => Object.hasOwn(EN, text) && EN[text] !== text);