/** * KI/AI disclosure for onepager sites. * * Include: * * Configuration via data attributes on the script tag: * data-tone="playful" — Lighthearted note with humor * data-tone="serious" — Straightforward disclosure * data-tone="minimal" — Single compact label * data-tone="none" — No disclosure (script does nothing) * * Language is read from document.documentElement.lang: * "de" -> KI terminology, "en" -> AI terminology. * All tones link to msbls.de/ki. */ (function () { var script = document.currentScript; var tone = (script && script.getAttribute('data-tone')) || 'minimal'; if (tone === 'none') return; var lang = (document.documentElement.lang || 'de').slice(0, 2).toLowerCase(); var isEn = lang === 'en'; var texts = { minimal: isEn ? 'AI-assisted' : 'KI-unterst\u00FCtzt', serious: isEn ? 'This site was created with AI assistance.' : 'Diese Seite wurde mit Unterst\u00FCtzung von KI erstellt.', playful: isEn ? 'Made with AI (no AIs were harmed)' : 'Mit KI gemacht (keine KI wurde verletzt)', }; var text = texts[tone] || texts.minimal; var el = document.createElement('div'); el.className = 'onepager-ai-disclosure'; el.innerHTML = '' + text + ''; el.style.cssText = 'text-align:center;font-size:0.65rem;opacity:0.4;padding:6px 0;margin-top:2px;'; var a = el.querySelector('a'); if (a) { a.style.color = 'inherit'; a.style.textDecoration = 'none'; } // i18n: update text when language changes var observer = new MutationObserver(function () { var newLang = (document.documentElement.lang || 'de').slice(0, 2).toLowerCase(); var newIsEn = newLang === 'en'; var newTexts = { minimal: newIsEn ? 'AI-assisted' : 'KI-unterst\u00FCtzt', serious: newIsEn ? 'This site was created with AI assistance.' : 'Diese Seite wurde mit Unterst\u00FCtzung von KI erstellt.', playful: newIsEn ? 'Made with AI (no AIs were harmed)' : 'Mit KI gemacht (keine KI wurde verletzt)', }; var link = el.querySelector('a'); if (link) link.textContent = newTexts[tone] || newTexts.minimal; }); observer.observe(document.documentElement, { attributes: true, attributeFilter: ['lang'] }); var footer = document.querySelector('footer .container, footer'); if (footer) { footer.appendChild(el); } else { document.body.appendChild(el); } })();