Signatur
Beschreibung
Die Eigenschaft targetLanguage einer Translator-Instanz enthält den Sprachcode (BCP 47, z. B. "de" oder "ja"), in den translate() und translateStreaming() den Eingabetext übersetzen. Der Wert wird beim Erzeugen über Translator.create({ sourceLanguage, targetLanguage }) festgelegt und kann danach nicht mehr geändert werden.
Nützlich ist die Eigenschaft vor allem, wenn Übersetzer-Instanzen zwischengespeichert oder zwischen Modulen weitergereicht werden: Anhand von targetLanguage (und sourceLanguage) lässt sich prüfen, ob eine vorhandene Instanz für das gewünschte Sprachpaar wiederverwendet werden kann, oder die Zielsprache in der Oberfläche anzeigen, z. B. als lang-Attribut des Ausgabeelements.
Die Translator-API gehört zu den eingebauten KI-APIs des Browsers und arbeitet mit lokal heruntergeladenen Sprachmodellen. Soll eine andere Zielsprache verwendet werden, muss eine neue Instanz mit Translator.create() erzeugt werden.
Rückgabewert
"de". Schreibgeschützt.Beispiele
Zielsprache einer neuen Instanz auslesen
if ('Translator' in self) {
const translator = await Translator.create({
sourceLanguage: 'en',
targetLanguage: 'de'
});
console.log(translator.targetLanguage);
console.log(await translator.translate('Good morning!'));
}
Übersetzer-Cache nach Sprachpaar
const cache = [];
const getTranslator = async (sourceLanguage, targetLanguage) => {
const hit = cache.find(
(t) => t.sourceLanguage === sourceLanguage && t.targetLanguage === targetLanguage
);
if (hit) return hit;
const availability = await Translator.availability({ sourceLanguage, targetLanguage });
if (availability === 'unavailable') {
throw new Error(`Sprachpaar ${sourceLanguage} → ${targetLanguage} nicht verfügbar`);
}
const translator = await Translator.create({ sourceLanguage, targetLanguage });
cache.push(translator);
return translator;
};
const t = await getTranslator('en', 'fr');
console.log(`Übersetze nach: ${t.targetLanguage}`);
lang-Attribut der Ausgabe setzen
const translator = await Translator.create({ sourceLanguage: 'en', targetLanguage: 'es' });
const output = document.querySelector('#uebersetzung');
output.textContent = await translator.translate('Thank you for your order.');
// Für Screenreader und Silbentrennung korrekte Sprache setzen
output.lang = translator.targetLanguage;
console.log(output.lang);
// Wichtig · Fallstricke
- Experimentell: Die Translator-API ist derzeit nur in Chromium-basierten Desktop-Browsern (Chrome 138+) verfügbar; Firefox und Safari unterstützen sie nicht. Vorher per
'Translator' in selfprüfen. - Schreibgeschützt: Eine Zuweisung an
targetLanguagewird ignoriert (im Strict ModeTypeError). Für eine andere Zielsprache eine neue Instanz erzeugen. - Der zurückgegebene Code kann vom übergebenen Wert abweichen, wenn der Browser das Tag normalisiert (z. B. Groß-/Kleinschreibung). Vergleiche daher ggf. normalisiert, etwa mit
Intl.getCanonicalLocales(). Translator.create()erfordert unter Umständen einen Modell-Download und eine Nutzeraktivierung; nur in sicheren Kontexten (HTTPS) verfügbar.