Übersetzung mit integrierter KI

Veröffentlicht: 12. November 2024

Mit der Translator API in Chrome können Sie Text im Browser mithilfe lokaler KI-Modelle übersetzen.

Möglicherweise bieten Sie auf Ihrer Website bereits Websiteinhalte in mehreren Sprachen an, um sie für ein globales Publikum zugänglich zu machen. Mit der Translator API können Nutzer in ihrer Muttersprache beitragen. Nutzer können beispielsweise an Supportchats in ihrer Muttersprache teilnehmen und Ihre Website kann sie in die von Ihren Kundenservicemitarbeitern verwendete Sprache übersetzen, bevor sie das Gerät des Nutzers verlässt. So wird für alle Nutzer eine reibungslose, schnelle und inklusive Nutzung ermöglicht.

Für die Übersetzung von Inhalten im Web war in der Regel ein Cloud-Dienst erforderlich. Zuerst wird der Quellinhalt auf einen Server hochgeladen, der die Übersetzung in eine Zielsprache ausführt. Anschließend wird der resultierende Text heruntergeladen und an den Nutzer zurückgegeben. Wenn Sie die Übersetzung auf dem Client ausführen, sparen Sie die Zeit, die für Serverzugriffe erforderlich ist, und die Kosten für das Hosting des Übersetzungsdiensts.

Verfügbarkeit

Die ausgewählte Zielsprache ist immer bekannt, die Ausgangssprache kann jedoch in einigen Fällen unbekannt sein, z. B. bei von Nutzern erstellten Inhalten. In solchen Fällen umfasst der Translator API-Vorschlag sowohl die Translator API als auch die Language Detector API, die auch in einem Ursprungstest verfügbar ist. Registrieren Sie sich für beide Ursprungstests, um diese APIs zusammen zu verwenden.

Funktionserkennung

Um festzustellen, ob die Translator API unterstützt wird, führen Sie das folgende Snippet zur Funktionserkennung aus.

if ('translation' in self && 'createTranslator' in self.translation) {
  // The Translator API is supported.
}

Unterstützung für Sprachpaare prüfen

Die Übersetzung wird mit Sprachpaketen verwaltet, die bei Bedarf heruntergeladen werden. Ein Sprachpaket ist wie ein Wörterbuch für eine bestimmte Sprache. Diese Pakete sind mit der asynchronen Funktion canTranslate() gekoppelt, mit der Sie feststellen können, ob ein Sprachpaar unterstützt wird.

Die canTranslate()-Funktion erfordert einen options-Parameter mit zwei Feldern:

  • sourceLanguage: Die aktuelle Sprache des Texts.
  • targetLanguage: Die Sprache, in die der Text übersetzt werden soll.

Verwenden Sie Sprachkürzel gemäß BCP 47 als Strings. Beispiel: 'es' für Spanisch oder 'fr' für Französisch.

await translation.canTranslate({
  sourceLanguage: 'en',
  targetLanguage: 'fr',
});
// 'readily'

Die Funktion canTranslate() kann folgende Ergebnisse zurückgeben:

  • no: Mit diesem Browser kann die Übersetzung nicht wie gewünscht erfolgen.
  • readily: Der Browser kann die Übersetzung wunschgemäß ausführen.
  • after-download: Der Browser kann die Übersetzung erst ausführen, nachdem er die entsprechenden Modell- oder Sprachpakete heruntergeladen hat.

Sie können den Downloadfortschritt mit dem Ereignis downloadprogress überwachen:

translator.ondownloadprogress = progressEvent => {
  updateDownloadProgressBar(progressEvent.loaded, progressEvent.total);
};

Wenn der Download fehlschlägt, werden downloadprogress-Ereignisse nicht mehr ausgegeben und die ready-Versprechen abgelehnt.

Übersetzer erstellen und ausführen

Rufen Sie die asynchrone Funktion translation.createTranslator() auf, um einen Übersetzer zu erstellen. Wie bei canTranslate() ist ein Optionsparameter mit zwei Feldern erforderlich, eines für sourceLanguage und eines für targetLanguage.

// Create a translator that translates from English to French.
const translator = await self.translation.createTranslator({
  sourceLanguage: 'en',
  targetLanguage: 'fr',
});

Sobald Sie einen Übersetzer haben, können Sie die asynchrone translate()-Funktion aufrufen, um Ihren Text zu übersetzen.

await translator.translate('Where is the next bus stop, please?');
// "Où est le prochain arrêt de bus, s'il vous plaît ?"

Einschränkungen im Ursprungstest

Während des Testzeitraums gelten die folgenden Einschränkungen.

Unterstützte Sprachpaare

Derzeit können bis zu drei Sprachpakete für die Übersetzung heruntergeladen werden. Wir werden das Angebot an unterstützten Sprachen in zukünftigen Versionen erweitern und dabei weiterhin hohe Standards für den Datenschutz von Nutzern aufrechterhalten. Mit der Funktion canTranslate() können Sie prüfen, ob das gewünschte Sprachpaar unterstützt wird.

Es ist möglich, dass bestimmte, seltener verwendete Sprachpaare für den Fingerabdruck verwendet werden. So werden beispielsweise häufiger Übersetzungen zwischen Englisch und Spanisch benötigt als zwischen weniger gängigen Sprachen wie Gälisch und Katalanisch. Ein weniger gängiges Sprachpaar könnte als Datenpunkt für die Nutzeridentifikation verwendet werden.

Während der Testphase beschränken wir die Anzahl der Sprachenpaare, die übersetzt werden können, um den Datenschutz der Nutzer zu schützen. Sprachpaare müssen die folgenden Kriterien erfüllen:

  • Sowohl die Ausgangs- als auch die Zielsprache sind in Chrome als bevorzugte Sprachen festgelegt.
  • Oder eine der Sprachen ist in Chrome als bevorzugte Sprache festgelegt und die andere gehört zu den folgenden beliebten Sprachen:
    • Englisch (en)
    • Mandarin (zh; vereinfacht) oder Mandarin (zh-Hant; traditionell)
    • Japanisch (ja)
    • Portugiesisch (pt)
    • Russisch (ru)
    • Spanisch (es)
    • Türkisch (tr)
    • Hindi (hi)
    • Vietnamesisch (vi)
    • Bengalisch (bn)

Sprachbeschränkungen für lokale Tests umgehen

Beim lokalen Prototyping können Sie diese Prüfungen umgehen, indem Sie Chrome mit der Befehlszeilenoption --disable-features=TranslationAPIAcceptLanguagesCheck ausführen. Alternativ können Sie chrome://flags/#translation-api auf Aktivieren, ohne Sprachpaketbeschränkung setzen.

Unter chrome://on-device-translation-internals/ können Sie Sprachpakete manuell installieren und deinstallieren.

Sequenzielle Übersetzungen

Übersetzungen werden der Reihe nach verarbeitet. Wenn Sie große Textmengen zur Übersetzung senden, werden nachfolgende Übersetzungen blockiert, bis die vorherigen abgeschlossen sind.

Für eine optimale Reaktionszeit Ihrer Übersetzungsanfragen sollten Sie sie gruppieren und eine Ladeoberfläche wie ein rotierendes Ladesymbol anzeigen, um zu zeigen, dass eine Übersetzung gerade läuft.

Verfügbarkeit von Webworkern

Während des Testzeitraums wird die Translator API nur über den Hauptthread unterstützt. Sobald die API allgemein verfügbar ist, wird sie auch in Webworkern unterstützt.

Demo

Die Translator API, die in Kombination mit der Language Detector API verwendet wird, finden Sie im Sandbox-Bereich für die Translator API und die Language Detector API.

Standardisierungsaufwand

Wir arbeiten daran, die Translator API zu standardisieren, um für plattformübergreifende Kompatibilität zu sorgen.

Unser API-Vorschlag hat Unterstützung von der Community erhalten und wird nun in der W3C Web Incubator Community Group weiter diskutiert. Das Chrome-Team hat Feedback von der W3C Technical Architecture Group angefordert und Mozilla und WebKit um ihre Positionierung zu den Standards gebeten.

Teilnehmen und Feedback geben

Sie können die Translator API jetzt testen, indem Sie am Ursprungstest teilnehmen und uns Feedback geben. Ihr Feedback kann sich direkt darauf auswirken, wie wir zukünftige Versionen dieser API und alle integrierten KI-APIs entwickeln und implementieren.