Translator: `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 statische Methode availability()
der Translator
-Schnittstelle gibt einen enumerierten Wert zurück, der die Verfügbarkeit des KI-Modells für die gegebene Translator
-Konfiguration angibt.
Syntax
Translator.availability(options)
Parameter
options
-
Ein Objekt, das Konfigurationsoptionen für den
Translator
spezifiziert. Mögliche Werte sind:sourceLanguage
-
Ein String, der die Sprache des zu übersetzenden Eingabetexts angibt, der ein gültiges BCP 47-Sprachtag sein sollte (wie in RFC 5646 spezifiziert).
targetLanguage
-
Ein String, der die Sprache angibt, in die der Eingabetext übersetzt werden soll, der ebenfalls ein gültiges BCP 47-Sprachtag sein sollte.
Rückgabewert
Ein Promise
, das sich mit einem enumerierten Wert erfüllt, der angibt, ob Unterstützung für eine gegebene Translator
-Konfiguration verfügbar ist (oder verfügbar sein wird), oder null
, falls die Unterstützung nicht ermittelt werden konnte.
Mögliche Werte sind:
available
-
Der Browser unterstützt die gegebene Konfiguration und kann sofort genutzt werden.
downloadable
-
Der Browser unterstützt die gegebene Konfiguration, muss jedoch zuerst ein KI-Modell oder einige Feinabstimmungsdaten für das Modell herunterladen.
downloading
-
Der Browser unterstützt die gegebene Konfiguration, muss jedoch erst einen laufenden Download abschließen, bevor fortgefahren werden kann.
-
Der Browser unterstützt die gegebene Konfiguration nicht. Dieser Wert wird auch zurückgegeben, wenn die angegebenen
sourceLanguage
undtargetLanguage
identisch sind.
Ausnahmen
InvalidStateError
DOMException
-
Ausgelöst, wenn das
Document
der Seite noch nicht aktiv ist. OperationError
DOMException
-
Ausgelöst, wenn die Initialisierung des KI-Modells aus irgendeinem Grund fehlgeschlagen ist.
UnknownError
DOMException
-
Ausgelöst, wenn der
availability()
-Aufruf aus einem anderen Grund fehlschlug, oder einem Grund, den der Benutzeragent nicht offenlegen wollte.
Wenn die Nutzung der Methode durch eine translator
Permissions-Policy
blockiert ist, schlägt das Versprechen mit einem Wert von unavailable
fehl.
Beispiele
Grundlegende Nutzung von availability()
Im folgenden Snippet prüfen wir zunächst die Verfügbarkeit des Modells zum Übersetzen zwischen zwei Sprachen mit der availability()
-Methode:
- Wenn es
unavailable
zurückgibt, drucken wir eine entsprechende Fehlermeldung in die Konsole. - Wenn es
available
zurückgibt, erstellen wir einen Übersetzer mit dercreate()
-Methode, indem wir die Quell- und Zielsprache übergeben. Das erforderliche KI-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 aus, aber diesmal inkludieren wir einenmonitor
, der das prozentuale Herunterladen des Modells jedes Mal protokolliert, wenn dasdownloadprogress
-Ereignis ausgelöst wird.
async function getTranslator(languages) {
const availability = await Translator.availability(languages);
if (availability === "unavailable") {
console.log(
`Translation not supported; try a different language combination.`,
);
return undefined;
} else if (availability === "available") {
return await Translator.create(languages);
}
return await Translator.create({
...languages,
monitor: (monitor) => {
monitor.addEventListener("downloadprogress", (e) => {
console.log(`Downloaded ${Math.floor(e.loaded * 100)}%`);
});
},
});
}
const translator = await getTranslator({
sourceLanguage: "en",
targetLanguage: "ja",
});
Erkennen der Sprachunterstützung
async function langSupport(source, target) {
const availability = await Translator.availability({
sourceLanguage: source,
targetLanguage: target,
});
return availability;
}
await langSupport("en", "fr");
await langSupport("en", "pt");
await langSupport("en", "zh");
Spezifikationen
Specification |
---|
Translator and Language Detector APIs # dom-translator-availability |