Signatur
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
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.');
}
Ohne Angabe: Wert ist null
const detector = await LanguageDetector.create();
console.log(detector.expectedInputLanguages);
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));
// 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:
expectedInputLanguagesist 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 einenTypeError. Für eine andere Konfiguration brauchen Sie eine neue Instanz übercreate(). - Nicht unterstützte Sprachen: Enthält die Liste Sprachen, die das Modell nicht kennt, schlägt
create()fehl. Prüfen Sie das vorher mitLanguageDetector.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().