Какво е вградения преводач API на Chrome?

Translator API е експериментална функция на уеб платформата, която позволява на уеб страница да превежда текст директно в браузъра, използвайки локално пакетиран AI модел, управляван от потребителския агент. Вместо да изпраща текст към отдалечена услуга за превод, браузърът излага JavaScript интерфейс (window.Translator), който създава краткотрайни сесии на преводач за дадена двойка език източник/целеви език и връща преведени низове асинхронно.

Придружаващият Language Detector API (window.LanguageDetector) проверява низ и връща класирана списък на вероятни BCP-47 етикети на езици с оценки на доверие. Заедно двата API позволяват на страница да открие езика на произволен вход и след това да го преведе без никакво мрежово пътуване след първоначалното изтегляне на модела.

Тъй като моделът работи на устройството на потребителя, преводите работят офлайн след изтегляне, чувствителният текст никога не напуска машината и няма разходи за API по заявка. Компромисът е, че наличността зависи от браузъра, операционната система и дали исканата двойка езици е изтеглена.

Описание на инструмента

Този playground е интерактивна среда за тестване на Translator и Language Detector API в собствения ви браузър. Той свързва входна зона, селектор на целеви език и изходна зона към основните Translator.create() / translate() повиквания и показва състоянието на наличност на модела и напредъка на изтегляне, докато експериментирате.

Езикът източник по подразбиране е "Auto detect" (Автоматично откриване), което маршрутизира входа чрез LanguageDetector първо и след това препраща открития език към преводача. Можете също да фиксирате езика източник явно, за да пропуснете откриването.

Примери

Източник (автоматично открит) Целеви Изход
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.

Функции

  • Автоматично откриване на езика — използва Language Detector API, за да идентифицира езика източник преди превода.
  • Двупосочен селектор на езици — разменете източник и целеви с един клик и преведете отново.
  • Състояние на наличност в реално време — показва дали исканият модел е available (достъпен), downloadable (изтеглим), downloading (изтегля се) или unavailable (недостъпен).
  • Лента на напредъка на изтегляне — потоци downloadprogress събития от преводача/детектора, докато моделът се изтегля.
  • Превод на устройството, офлайн — след като моделът е изтеглен, не се правят мрежови заявки за превод.

Случаи на употреба

  • Преглед на локализирано съдържание — поставете низ и веднага видете как звучи на друг език при редактиране на текст на потребителския интерфейс.
  • Проверка на поддръжката на браузъра — проверете дали конкретна двойка източник/целеви е достъпна преди да пуснете функция, която зависи от Translator API.
  • Бърз офлайн превод — преведете фрагменти, докато сте отключени, след като релевантният езиков пакет е изтеглен.

Изисквания

  • Браузър, който реализира Translator и Language Detector API. На момента на писане това е Chrome 138+ и браузъри на базата на Chromium (например Opera 122+) на десктоп. Edge, Firefox и Safari все още не се поддържат.
  • Защитен контекст (HTTPS или localhost).
  • Преходна активация на потребителя — API позволяват create() само след скорошен жест на потребителя, което е причината преводът да работи при въвеждане, а не при зареждане на страница.
  • Достатъчно дисково пространство и честотна лента за първоначалното изтегляне на езиковия модел. Последващите преводи преизползват кеширания модел.

Как работи

  1. При монтиране инструментът проверява за window.Translator и window.LanguageDetector. Ако някой от тях липсва, се показва предупреждение и входът е деактивиран.
  2. Когато пишете, входът е отложен и двойката източник/целеви е разрешена (първо се изпълнява LanguageDetector.detect(), ако източникът е auto).
  3. Translator.availability({ sourceLanguage, targetLanguage }) се извиква, за да се запита състоянието на модела за тази двойка.
  4. Translator.create() се извиква с обратно повикване monitor, което слуша downloadprogress събития и актуализира лентата на напредъка.
  5. translator.translate(text) връща преведения низ, който се показва в изходната зона.
  6. Преводачът и детекторът се освобождават чрез destroy() след всяко повикване, за да се освободят ресурси.

Поддържани езици

Селекторът излага куриран списък на общи BCP-47 етикети на езици, които пакетираният модел на Chrome поддържа или обикновено тества, включително:

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.

Действителният набор от използваеми двойки зависи от това какво е изтеглил или може да изтегли основният браузърен модел. Двойките, докладвани като unavailable (недостъпни), не могат да бъдат преведени в текущия ви браузър.

Ограничения

  • API са експериментални и повърхността може да се промени между версиите на браузъра.
  • Качеството на превода се определя от браузърния модел и не е гарантирано да съвпада със специализирани облачни услуги за превод.
  • Някои двойки езици могат да изискват междинен превод чрез английски или просто да бъдат недостъпни.
  • Първият превод за нова двойка езици може да е бавен поради изтегляне на модела.
  • API в момента не са излагани на уеб работници и могат да бъдат ограничени зад Permissions Policy (translator, language-detector) на кросс-origin iframe.

ЧЗВ

Защо изходът остава празен? Translator API вероятно не е реализиран в браузъра ви. Отворете страницата в Chrome 138+ на десктоп и презаредете.

Защо се показва "Downloading model…" (Изтегляне на модела…)? Първия път, когато използвате двойка езици, браузърът изтегля пакет модел. Лентата на напредъка отразява downloadprogress събития, излъчени от Translator.create().

Текстът ми напуска ли устройството? Не. След като моделът е изтеглен, преводът се извършва изцяло на устройството. Самият инструмент не изпраща входа ви никъде.

Защо "Auto detect" (Автоматично откриване) понякога се проваля? Ако входът е твърде кратък, неясен или в скрипт, който детекторът не е виждал, LanguageDetector.detect() може да върне und (неопределен). В този случай изберете езика източник ръчно.