Start · Sprachen · JavaScript · Referenz · Translator.targetLanguage

Translator.targetLanguage

Eigenschaft

Schreibgeschützte Eigenschaft, die den BCP-47-Sprachcode der Zielsprache liefert, in die eine <code>Translator</code>-Instanz Texte übersetzt.

seit JavaScript Experimentell: Chrome 138+ (Desktop), noch nicht B Kategorie: webapi

Signatur

Translator.targetLanguage

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

Typ
string
Beschreibung
BCP-47-Sprachcode der Zielsprache, z. B. "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!'));
}
de Guten Morgen!

Ü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}`);
Übersetze nach: fr

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);
es

// 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 self prüfen.
  • Schreibgeschützt: Eine Zuweisung an targetLanguage wird ignoriert (im Strict Mode TypeError). 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.