Start · Sprachen · JavaScript · Referenz · LanguageDetector.expectedInputLanguages

LanguageDetector.expectedInputLanguages

Eigenschaft

Schreibgeschützte Eigenschaft, die die beim Erzeugen eines <code>LanguageDetector</code> angegebenen erwarteten Eingabesprachen als eingefrorenes Array von BCP-47-Sprachcodes liefert.

seit JavaScript Experimentell: Chrome/Edge 138+ (Desktop), noch ni Kategorie: webapi

Signatur

LanguageDetector.expectedInputLanguages

Beschreibung

Die Eigenschaft expectedInputLanguages einer LanguageDetector-Instanz zeigt, auf welche Sprachen der Detektor beim Erzeugen über LanguageDetector.create() vorbereitet wurde. Diese Angabe ist ein Hinweis an das eingebaute Modell im Browser: Wenn Sie wissen, dass Ihre Nutzer vor allem Deutsch, Englisch oder Französisch schreiben, kann der Browser sicherstellen, dass genau diese Sprachen unterstützt und gegebenenfalls heruntergeladen werden.

Der Wert ist ein eingefrorenes Array (Object.isFrozen() liefert true) aus Sprach-Tags nach BCP 47, zum Beispiel ["de", "en"]. Wurde bei create() keine Option expectedInputLanguages angegeben, ist der Wert null. Die Sprach-Tags können vom Browser normalisiert werden, etwa aus "DE" wird "de".

In der Praxis nutzen Sie die Eigenschaft, um zu protokollieren oder zu prüfen, mit welcher Konfiguration ein Detektor läuft, etwa wenn eine Instanz zwischengespeichert und an mehreren Stellen im Code wiederverwendet wird. Die Eigenschaft schränkt die Ergebnisse von detect() nicht ein: Der Detektor kann weiterhin andere Sprachen erkennen und zurückgeben.

Rückgabewert

Typ
ReadonlyArray<string> | null
Beschreibung
Eingefrorenes Array mit den erwarteten Sprach-Tags nach BCP 47 oder null, wenn beim Erzeugen keine erwarteten Sprachen angegeben wurden.

Beispiele

Detektor mit erwarteten Sprachen erzeugen und auslesen

if ('LanguageDetector' in self) {
  const detector = await LanguageDetector.create({
    expectedInputLanguages: ['de', 'en', 'fr']
  });

  console.log(detector.expectedInputLanguages);
  console.log(Object.isFrozen(detector.expectedInputLanguages));
} else {
  console.warn('Language Detector API wird nicht unterstützt.');
}
["de", "en", "fr"] true

Ohne Angabe: Wert ist null

const detector = await LanguageDetector.create();
console.log(detector.expectedInputLanguages);
null

Vorab die Verfügbarkeit prüfen und Konfiguration protokollieren

const options = { expectedInputLanguages: ['de', 'en'] };

const availability = await LanguageDetector.availability(options);
if (availability === 'unavailable') {
  throw new Error('Die gewünschten Sprachen werden nicht unterstützt.');
}

const detector = await LanguageDetector.create({
  ...options,
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Modell geladen: ${Math.round(e.loaded * 100)} %`);
    });
  }
});

const langs = detector.expectedInputLanguages ?? [];
console.log(`Detektor erwartet: ${langs.join(', ')}`);

const [top] = await detector.detect('Guten Morgen, wie geht es dir?');
console.log(top.detectedLanguage, top.confidence.toFixed(2));
Detektor erwartet: de, en de 0.98

// Wichtig · Fallstricke

  • Experimentelle API: Die Language Detector API ist derzeit nur in Chromium-basierten Desktop-Browsern (ab Chrome 138) verfügbar und setzt ein sicheres Umfeld (HTTPS) voraus. Prüfen Sie immer vorher mit 'LanguageDetector' in self, ob sie vorhanden ist.
  • Kein Filter: expectedInputLanguages ist nur ein Hinweis zur Modellvorbereitung. detect() kann trotzdem Sprachen außerhalb dieser Liste zurückgeben.
  • Nur lesbar und eingefroren: Zuweisungen an die Eigenschaft oder Änderungen am Array (z. B. push()) werden ignoriert bzw. werfen im Strict Mode einen TypeError. Für eine andere Konfiguration brauchen Sie eine neue Instanz über create().
  • Nicht unterstützte Sprachen: Enthält die Liste Sprachen, die das Modell nicht kennt, schlägt create() fehl. Prüfen Sie das vorher mit LanguageDetector.availability() und denselben Optionen.
  • Die Werte können normalisiert werden. Vergleichen Sie Sprach-Tags deshalb ohne Beachtung der Groß- und Kleinschreibung oder mit Intl.getCanonicalLocales().