Signatur
Beschreibung
Die Eigenschaft outputLanguage gehört zur Summarizer API, einer der eingebauten KI-APIs im Browser (in Chrome läuft sie auf Gemini Nano). Sie gibt die Sprache zurück, in der das Sprachmodell seine Zusammenfassungen schreibt. Der Wert ist ein Sprach-Tag nach BCP 47, etwa "en", "es" oder "ja".
Die Eigenschaft lässt sich nur lesen. Festgelegt wird sie ein einziges Mal beim Erzeugen der Instanz, und zwar über die Option outputLanguage von Summarizer.create(). Wurde dort keine Ausgabesprache angegeben, ist der Wert null. Um eine andere Sprache zu verwenden, muss man eine neue Instanz erzeugen.
Nützlich ist die Eigenschaft vor allem in wiederverwendbarem Code: Ein Modul bekommt eine fertige Summarizer-Instanz übergeben und kann damit prüfen, ob die Sprache zur Oberfläche passt. Außerdem kann man die Ausgabe mit dem richtigen lang-Attribut ins DOM schreiben, was Barrierefreiheit, Silbentrennung und Schriftwahl verbessert.
Rückgabewert
"en") für die Sprache der Zusammenfassung, oder null, wenn bei Summarizer.create() keine outputLanguage angegeben wurde.Beispiele
Instanz mit Ausgabesprache erzeugen und abfragen
if ('Summarizer' in self) {
const summarizer = await Summarizer.create({
type: 'tldr',
length: 'short',
expectedInputLanguages: ['en'],
outputLanguage: 'en'
});
console.log(summarizer.outputLanguage);
} else {
console.log('Summarizer API wird nicht unterstützt');
}
Ohne Angabe ist der Wert null
const summarizer = await Summarizer.create({ type: 'key-points' });
// Zur Laufzeit ist die Ausgabesprache nicht festgelegt
console.log(summarizer.outputLanguage);
console.log(summarizer.outputLanguage ?? 'nicht festgelegt');
Zusammenfassung mit korrektem lang-Attribut ausgeben
const options = {
type: 'teaser',
format: 'plain-text',
expectedInputLanguages: ['es'],
outputLanguage: 'es'
};
// Vorher prüfen, ob die Kombination verfügbar ist
const status = await Summarizer.availability(options);
if (status !== 'unavailable') {
const summarizer = await Summarizer.create(options);
const text = document.querySelector('article').innerText;
const summary = await summarizer.summarize(text);
const box = document.querySelector('#zusammenfassung');
box.textContent = summary;
// Sprache der Ausgabe für Screenreader und Silbentrennung setzen
box.lang = summarizer.outputLanguage ?? document.documentElement.lang;
console.log(`Zusammenfassung in: ${box.lang}`);
}
Übergebene Instanz auf passende Sprache prüfen
const ensureLanguage = (summarizer, wanted) => {
if (summarizer.outputLanguage !== wanted) {
throw new Error(
`Erwartet: ${wanted}, erhalten: ${summarizer.outputLanguage}`
);
}
return summarizer;
};
const s = await Summarizer.create({ outputLanguage: 'ja' });
ensureLanguage(s, 'ja');
console.log('Sprache passt');
// Wichtig · Fallstricke
- Experimentell: Die Summarizer API gibt es derzeit nur in Chromium-Browsern auf dem Desktop (Chrome ab Version 138). Außerdem muss das Gerät bestimmte Anforderungen erfüllen (Speicherplatz, GPU bzw. RAM). Vor der Nutzung sollte man die Unterstützung mit
'Summarizer' in selfprüfen. - Nur lesbar: Eine Zuweisung wie
summarizer.outputLanguage = 'de'hat keine Wirkung (im Strict Mode löst sie einenTypeErroraus). Für eine andere Sprache muss man eine neue Instanz erzeugen. - Wenige Sprachen: Chrome unterstützt anfangs nur wenige Ausgabesprachen, etwa
en,esundja. Bei einer nicht unterstützten Sprache schlägtSummarizer.create()fehl (NotSupportedError). Deshalb vorherSummarizer.availability()mit denselben Optionen aufrufen. - Fehlt
outputLanguage, gibt Chrome eine Warnung in der Konsole aus. Das Ergebnis kann dann in einer unerwarteten Sprache erscheinen. Die Ausgabesprache sollte daher immer ausdrücklich angegeben werden. - Die API steht nur in sicheren Kontexten (HTTPS) zur Verfügung. In iframes muss sie über die Permissions Policy
summarizerfreigegeben sein.