Translator: availability() statische Methode
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
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
festlegt. Mögliche Werte sind:sourceLanguage
-
Ein String, der die Sprache des Eingabetextes spezifiziert, der übersetzt werden soll. Diese sollte ein gültiges BCP 47 Sprach-Tag sein.
targetLanguage
-
Ein String, der die Sprache angibt, in die der Eingabetext übersetzt wird. Diese sollte ein gültiges BCP 47 Sprach-Tag sein.
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
, wenn die Unterstützung nicht bestimmt werden konnte.
Mögliche Werte sind:
available
-
Der Browser unterstützt die gegebene Konfiguration und sie kann sofort verwendet werden.
downloadable
-
Der Browser unterstützt die gegebene Konfiguration, es muss jedoch zunächst ein KI-Modell oder einige Feinabstimmungsdaten für das Modell heruntergeladen werden.
downloading
-
Der Browser unterstützt die gegebene Konfiguration, es muss jedoch ein laufender Download abgeschlossen werden, bevor fortgefahren werden kann.
-
Der Browser unterstützt die gegebene Konfiguration nicht. Dieser Wert wird auch zurückgegeben, wenn die angegebenen
sourceLanguage
undtargetLanguage
gleich sind.
Ausnahmen
InvalidStateError
DOMException
-
Wird ausgelöst, wenn das
Document
der Seite noch nicht aktiv ist. OperationError
DOMException
-
Wird ausgelöst, wenn die Initialisierung des KI-Modells aus irgendeinem Grund fehlgeschlagen ist.
UnknownError
DOMException
-
Wird ausgelöst, wenn der
availability()
-Aufruf aus einem anderen Grund als fehlgeschlagen markiert wird oder wenn ein Grund nicht offengelegt werden sollte.
Wenn die Nutzung der Methode durch eine translator
Permissions-Policy
blockiert ist, lehnt das Promise mit einem Wert von unavailable
ab.
Beispiele
>Grundlegende Nutzung von availability()
Im folgenden Beispiel prüfen wir zunächst die Verfügbarkeit des Modells für die Übersetzung 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 und übergeben die Quell- und Zielsprachen. Das erforderliche KI-Modell ist verfügbar, sodass wir es sofort verwenden können. - Wenn es einen anderen Wert zurückgibt (das heißt
downloadable
oderdownloading
), führen wir denselbencreate()
-Methodenaufruf aus, aber dieses Mal fügen wir einenmonitor
hinzu, der den Prozentsatz des heruntergeladenen 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",
});
Erkennung 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> |
Browser-Kompatibilität
Loading…