Vad är Chromes inbyggda Translator API?

Translator API är en experimentell webbplattformsfunktion som låter en webbsida översätta text direkt i webbläsaren med hjälp av en lokalt paketerad AI-modell som hanteras av användaragenten. I stället för att skicka text till en fjärr-översättningstjänst exponerar webbläsaren ett JavaScript-gränssnitt (window.Translator) som skapar kortlivade översättarsessioner för ett givet käll-/målspråkspar och returnerar översatta strängar asynkront.

Det tillhörande Language Detector API (window.LanguageDetector) inspekterar en sträng och returnerar en rangordnad lista över sannolika BCP-47-språktaggar med konfidensvärden. Tillsammans tillåter de två API:erna en sida att detektera språket för godtycklig inmatning och sedan översätta det utan någon nätverksrundresa efter den initiala modellnedladdningen.

Eftersom modellen körs på användarens enhet fungerar översättningar offline när de väl är nedladdade, känslig text lämnar aldrig maskinen, och det finns inga API-kostnader per begäran. Avvägningen är att tillgängligheten beror på webbläsaren, operativsystemet och om det begärda språkparet har nedladdats.

Verktygsbeskrivning

Den här lekplatsen är en praktisk miljö för att testa Translator och Language Detector API:erna i din egen webbläsare. Den ansluter ett inmatningsområde, en målspråksväljare och ett utmatningsområde till de underliggande Translator.create() / translate()-anropen och visar modellens tillgänglighetstillstånd och nedladdningsförlopp medan du experimenterar.

Källspråket är som standard "Auto detect", vilket dirigerar inmatningen genom LanguageDetector först och sedan vidarebefordrar det detekterade språket till översättaren. Du kan också fästa källspråket explicit för att hoppa över detektionen.

Exempel

Källa (automatiskt detekterad) Mål Utmatning
Bonjour, comment ça va ? English Hello, how are you?
Guten Morgen, wie geht es dir? Spanish Buenos días, ¿cómo estás?
今日は良い天気ですね。 English The weather is nice today.

Funktioner

  • Automatisk språkdetektering — använder Language Detector API för att identifiera källspråket innan översättning.
  • Dubbelriktad språkväljare — byt källa och mål med ett enda klick och översätt igen.
  • Tillståndsvisning för live-tillgänglighet — visar om den begärda modellen är available, downloadable, downloading eller unavailable.
  • Nedladdningsförloppsrad — strömmar downloadprogress-händelser från översättaren/detektorn medan modellen hämtas.
  • Översättning på enheten, offline — när modellen väl är nedladdad görs inga nätverksbegäranden för att översätta.

Användningsfall

  • Förhandsgranskning av lokaliserad kopia — klistra in en sträng och se direkt hur den läses på ett annat språk medan du skriver gränssnitttext.
  • Verifiering av webbläsarstöd — kontrollera om ett specifikt käll-/målpar är tillgängligt innan du levererar en funktion som är beroende av Translator API.
  • Snabb offline-översättning — översätt kodavsnitt medan du är frånkopplad, efter att det relevanta språkpaketet har nedladdats.

Krav

  • En webbläsare som implementerar Translator och Language Detector API:erna. Vid skrivtillfället är detta Chrome 138+ och Chromium-baserade webbläsare (t.ex. Opera 122+) på skrivbord. Edge, Firefox och Safari stöds ännu inte.
  • En säker kontext (HTTPS eller localhost).
  • Transient användaraktivering — API:erna tillåter endast create() efter en nylig användargest, vilket är anledningen till att översättning körs på inmatning snarare än vid sidladdning.
  • Tillräckligt diskutrymme och bandbredd för den initiala språkmodellnedladdningen. Efterföljande översättningar återanvänder den cachelagrade modellen.

Hur det fungerar

  1. Vid montering kontrollerar verktyget om window.Translator och window.LanguageDetector finns. Om någon av dem saknas visas en varning och inmatningen inaktiveras.
  2. När du skriver debounces inmatningen och käll-/målparet löses (körs LanguageDetector.detect() först om källan är auto).
  3. Translator.availability({ sourceLanguage, targetLanguage }) anropas för att fråga modellens tillstånd för det paret.
  4. Translator.create() anropas med ett monitor-callback som lyssnar på downloadprogress-händelser och uppdaterar förloppsraden.
  5. translator.translate(text) returnerar den översatta strängen, som renderas i utmatningsområdet.
  6. Översättaren och detektorn frigörs via destroy() efter varje anrop för att frigöra resurser.

Språk som stöds

Väljaren exponerar en kurerad lista över vanliga BCP-47-språktaggar som Chromes paketerade modell stöder eller vanligtvis testar, inklusive:

en, es, fr, de, it, pt, nl, pl, ru, uk, tr, ar, hi, bn, ja, ko, zh, zh-Hant, vi, th, id, sv, no, fi, da, el, he, cs, ro, hu.

Den faktiska uppsättningen användbara par beror på vad den underliggande webbläsarmodellen har nedladdat eller kan ladda ned. Par som rapporteras som unavailable kan inte översättas i din nuvarande webbläsare.

Begränsningar

  • API:erna är experimentella och ytan kan ändras mellan webbläsarversioner.
  • Översättningskvaliteten bestäms av webbläsarens modell och är inte garanterad att matcha dedikerade molnöversättningstjänster.
  • Vissa språkpar kan kräva en mellanliggande pivot genom engelska eller kan helt enkelt vara otillgängliga.
  • Den första översättningen för ett nytt språkpar kan vara långsam på grund av modellnedladdningen.
  • API:erna exponeras för närvarande inte för webarbetare och kan gated bakom en Permissions Policy (translator, language-detector) på cross-origin iframes.

Vanliga frågor

Varför förblir utmatningen tom? Translator API är förmodligen inte implementerat i din webbläsare. Öppna sidan i Chrome 138+ på skrivbord och ladda om.

Varför visas "Downloading model…"? Första gången du använder ett språkpar laddar webbläsaren ned ett modellpaket. Förloppsraden återspeglar de downloadprogress-händelser som emitteras av Translator.create().

Lämnar min text enheten? Nej. Efter att modellen är nedladdad sker översättningen helt på enheten. Själva verktyget skickar inte din inmatning någonstans.

Varför misslyckas "Auto detect" ibland? Om inmatningen är för kort, tvetydig eller i ett skript som detektorn inte har sett, kan LanguageDetector.detect() returnera und (undetermined). Välj källspråket manuellt i så fall.