LanguageDetector: availability() statische Methode
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die availability()
statische Methode der LanguageDetector
-Schnittstelle gibt einen enumerierten Wert zurück, der angibt, ob das AI-Modell des Browsers eine gegebene LanguageDetector
-Konfiguration unterstützt.
Syntax
LanguageDetector.availability(options)
Parameter
options
-
Ein Objekt, das die Konfigurationsoptionen für den
LanguageDetector
spezifiziert. Mögliche Werte sind:expectedInputLanguages
-
Ein Array von Zeichenfolgen, die die erwarteten Sprachen des Eingabetextes angeben, dessen Sprache erkannt werden soll. Diese sollten gültige BCP 47-Sprach-Tags sein (wie in RFC 5646 spezifiziert). Standardmäßig
["en"]
Rückgabewert
Ein Promise
, das mit einem enumerierten Wert erfüllt wird, der anzeigt, ob Unterstützung für eine gegebene LanguageDetector
-Konfiguration verfügbar ist (oder verfügbar sein wird), oder null
, wenn die Unterstützung nicht bestimmt werden konnte.
Mögliche Werte sind:
available
-
Der Browser unterstützt die gegebene Konfiguration und kann sofort verwendet werden.
downloadable
-
Der Browser unterstützt die gegebene Konfiguration, aber es muss zunächst ein AI-Modell oder einige Feinabstimmungsdaten für das Modell heruntergeladen werden.
downloading
-
Der Browser unterstützt die gegebene Konfiguration, muss jedoch einen laufenden Download abschließen, bevor er fortfahren kann.
-
Der Browser unterstützt die gegebene Konfiguration nicht.
Ausnahmen
InvalidStateError
DOMException
-
Wird ausgelöst, wenn das
Document
der Seite noch nicht aktiv ist. OperationError
DOMException
-
Wird ausgelöst, wenn die Initialisierung des AI-Modells aus irgendeinem Grund fehlschlägt.
UnknownError
DOMException
-
Wird ausgelöst, wenn der
availability()
-Aufruf aus einem anderen Grund oder aus einem Grund, den der User-Agent nicht offenlegen wollte, fehlschlägt.
Wenn die Nutzung der Methode durch eine language-detector
Permissions-Policy
blockiert wird, schlägt das Promise mit einem Wert von unavailable
fehl.
Beispiele
Grundlegende availability()
-Nutzung
Im folgenden Code-Snippet prüfen wir zunächst die Verfügbarkeit des Modells zur Erkennung einiger Sprachen mit der availability()
-Methode:
- Wenn es
unavailable
zurückgibt, wird eine entsprechende Fehlermeldung in die Konsole ausgegeben. - Wenn es
available
zurückgibt, erstellen wir einen Sprachdetektor mithilfe dercreate()
-Methode und übergeben dieexpectedInputLanguages
. Das erforderliche AI-Modell ist verfügbar, sodass wir es sofort nutzen können. - Wenn es einen anderen Wert zurückgibt (das heißt,
downloadable
oderdownloading
), führen wir denselbencreate()
-Methodenaufruf durch, schließen diesmal jedoch einenmonitor
ein, der den Prozentsatz des heruntergeladenen Modells protokolliert, jedes Mal wenn dasdownloadprogress
-Ereignis ausgelöst wird.
async function getDetector(languages) {
const availability = await LanguageDetector.availability({
expectedInputLanguages: languages,
});
if (availability === "unavailable") {
console.log(`Detection not supported; try a different set of languages.`);
return undefined;
} else if (availability === "available") {
return await LanguageDetector.create({
expectedInputLanguages: languages,
});
}
return await LanguageDetector.create({
expectedInputLanguages: languages,
monitor(monitor) {
monitor.addEventListener("downloadprogress", (e) => {
console.log(`Downloaded ${Math.floor(e.loaded * 100)}%`);
});
},
});
}
const detector = await getDetector(["en-US", "zh"]);
Erkennung der Sprachunterstützung
async function langSupport(language) {
const availability = await LanguageDetector.availability({
expectedInputLanguages: [language],
});
return availability;
}
await langSupport("en");
await langSupport("pt");
await langSupport("zh");
Spezifikationen
Specification |
---|
Translator and Language Detector APIs # dom-languagedetector-availability |