Start · Sprachen · JavaScript · Referenz · Summarizer.outputLanguage

Summarizer.outputLanguage

Eigenschaft

Schreibgeschützte Eigenschaft einer <code>Summarizer</code>-Instanz: Sie liefert die Sprache (BCP-47-Code), in der die Zusammenfassung erzeugt wird, oder <code>null</code>.

seit JavaScript Experimentell: Chrome/Edge 138+ (Desktop), nicht i Kategorie: webapi

Signatur

Summarizer.outputLanguage

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

Typ
string | null
Beschreibung
Ein BCP-47-Sprach-Tag (z. B. "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');
}
en

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');
null 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}`);
}
Zusammenfassung in: es

Ü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');
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 self prüfen.
  • Nur lesbar: Eine Zuweisung wie summarizer.outputLanguage = 'de' hat keine Wirkung (im Strict Mode löst sie einen TypeError aus). Für eine andere Sprache muss man eine neue Instanz erzeugen.
  • Wenige Sprachen: Chrome unterstützt anfangs nur wenige Ausgabesprachen, etwa en, es und ja. Bei einer nicht unterstützten Sprache schlägt Summarizer.create() fehl (NotSupportedError). Deshalb vorher Summarizer.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 summarizer freigegeben sein.