Tłumaczenie za pomocą wbudowanej AI

Data publikacji: 12 listopada 2024 r.

Używaj interfejsu Translator API w Chrome, aby tłumaczyć tekst w przeglądarce przy użyciu lokalnych modeli AI.

Być może Twoja witryna zawiera już treści w wielu językach, aby była dostępna dla odbiorców na całym świecie. Dzięki interfejsowi Translator API użytkownicy mogą przyczynić się do tworzenia tłumaczeń w swoim języku ojczystym. Użytkownicy mogą na przykład prowadzić rozmowy na czacie z zespołem pomocy w swoim języku ojczystym, a Twoja witryna może przetłumaczyć go na język, którego używają pracownicy zespołu pomocy, zanim rozmowa opuści urządzenie użytkownika. W ten sposób dbamy o to, aby wszyscy użytkownicy mogli wygodnie, szybko i bezproblemowo.

Tłumaczenie treści w internecie zwykle wymaga korzystania z usługi w chmurze. Najpierw treści źródłowe są przesyłane na serwer, który przetłumaczy je na język docelowy. Następnie wynikowy tekst jest pobierany i zwracany użytkownikowi. Wykonując tłumaczenie na kliencie, oszczędzasz czas potrzebny na połączenia z serwerem i koszt hostingu usługi tłumaczenia.

Dostępność

Wybrany język docelowy jest zawsze znany, ale w niektórych sytuacjach język źródłowy może być nieznany, np. w przypadku treści użytkowników. W takich przypadkach oferta Translator API obejmuje zarówno interfejs Translator API, jak i Language Detector API, które są też dostępne w ramach testowania origin. Aby móc używać tych interfejsów API razem, zarejestruj się w obu testach origin.

Wykrywanie cech

Aby sprawdzić, czy interfejs Translator API jest obsługiwany, uruchom podany niżej fragment kodu służący do wykrywania funkcji.

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

Sprawdzanie obsługi pary języków

Tłumaczenie jest zarządzane za pomocą pakietów językowych, które są pobierane na żądanie. Pakiet językowy jest jak słownik danego języka. Te pakiety są połączone z funkcją asynchroniczną canTranslate(), która pozwala określić, czy dana para języków jest obsługiwana.

Funkcja canTranslate() wymaga parametru options z 2 polami:

  • sourceLanguage: bieżący język tekstu.
  • targetLanguage: język, na który ma zostać przetłumaczony tekst.

Jako ciągi znaków używaj krótkich kodów języków zgodnych ze standardem BCP 47. na przykład 'es' w przypadku hiszpańskiego lub 'fr' w przypadku francuskiego.

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

Funkcja canTranslate() może zwrócić jeden z tych wyników:

  • no: ta przeglądarka nie może tłumaczyć zgodnie z żądaniem.
  • readily: przeglądarka może przetłumaczyć tekst zgodnie z prośbą.
  • after-download: przeglądarka może wykonać tłumaczenie, ale dopiero po pobraniu odpowiedniego modelu lub pakietów językowych.

Postęp pobierania możesz nasłuchiwać za pomocą zdarzenia downloadprogress:

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

Jeśli pobieranie się nie powiedzie, przestaną być emitowane zdarzenia downloadprogress, a obietnica ready zostanie odrzucona.

Tworzenie i uruchamianie tłumacza

Aby utworzyć tłumacza, wywołaj asynchroniczną funkcję translation.createTranslator(). Podobnie jak w przypadku funkcji canTranslate(), wymaga ona parametru opcji z 2 polami: jednym dla sourceLanguage i jednym dla targetLanguage.

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

Gdy masz już tłumacza, wywołaj asynchroniczną funkcję translate(), aby przetłumaczyć tekst.

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

Ograniczenia w wersji próbnej serwera pierwotnego

W trakcie testowania origin obowiązują poniższe ograniczenia.

Obsługiwane pary języków

Obecnie można pobrać maksymalnie 3 pakiety językowe na potrzeby tłumaczenia. W przyszłych wersjach zamierzamy rozszerzyć zakres obsługiwanych języków, zachowując przy tym wysokie standardy ochrony prywatności użytkowników. Możesz sprawdzić, czy potrzebna para języków jest obsługiwana za pomocą funkcji canTranslate().

Możliwe, że do odcisku palca mogą być używane niektóre, rzadziej używane pary językowe. Na przykład częściej tłumaczy się z angielskiego na hiszpański niż na mniej popularne języki, takie jak gaelicki czy kataloński. Mniej popularna para języków może być uważana za punkt danych służący do identyfikacji użytkownika.

Podczas okresu próbnego ograniczamy liczbę par języków, które można przetłumaczyć, aby chronić prywatność użytkowników. Pary języków muszą spełniać następujące kryteria:

  • Zarówno język źródłowy, jak i docelowy są ustawione w Chrome jako preferowane języki.
  • Albo jeden z języków jest ustawiony jako preferowany w Chrome, a drugi należy do tych popularnych języków:
    • Angielski (en)
    • mandaryński (zh, uproszczony) lub mandaryński tajwański (zh-Hant, tradycyjny).
    • japoński (ja)
    • Portugalski (pt)
    • rosyjski (ru),
    • hiszpański (es),
    • turecki (tr)
    • hindi (hi),
    • wietnamski (vi)
    • bengalski (bn)

Omijanie ograniczeń językowych na potrzeby testów lokalnych

W przypadku prototypowania lokalnego możesz pominąć te kontrole, uruchamiając Chrome z opcją wiersza poleceń --disable-features=TranslationAPIAcceptLanguagesCheck. Możesz też ustawić chrome://flags/#translation-api na Włącz bez limitu pakietów językowych.

Odwiedź chrome://on-device-translation-internals/, aby ręcznie zainstalować i odinstalować pakiety językowe.

Tłumaczenia sekwencyjne

Tłumaczenia są przetwarzane po kolei. Jeśli wyślesz duże ilości tekstu do przetłumaczenia, kolejne tłumaczenia będą blokowane, dopóki nie zostaną ukończone wcześniejsze.

Aby zapewnić najlepszą reakcję na żądania tłumaczenia, grupowanie ich razem i wyświetlanie interfejsu wczytywania, np. wskaźnika postępu, aby poinformować, że tłumaczenie jest w toku.

Dostępność procesów internetowych

Podczas testowania origin interfejsu Translator API jest obsługiwany tylko z poziomu głównego wątku. Zamierzamy wprowadzić tę funkcję w workerach internetowych, gdy interfejs API będzie powszechnie dostępny.

Prezentacja

Interfejs Translator API używany w połączeniu z interfejsem Language Detector API znajdziesz na stronie Tłumacz i interfejs Language Detector API.

Nakłady na standaryzację

Pracujemy nad ujednoliceniem interfejsu Translator API, aby zapewnić kompatybilność z wieloma przeglądarkami.

Nasza propozycja interfejsu API uzyskała wsparcie społeczności i została przeniesiona do grupy W3C Web Incubator Community Group w celu dalszych dyskusji. Zespół Chrome poprosił o opinię W3C Technical Architecture Group oraz MozillaWebKit o ich stanowisko w sprawie standardów.

Udział w testach i przesyłanie opinii

Zacznij testować interfejs Translator API, dołączając do testu wersji źródłowej i przesyłając opinię. Twoje uwagi mogą mieć bezpośredni wpływ na sposób, w jaki tworzymy i wdrażamy przyszłe wersje tego interfejsu API oraz wszystkie wbudowane interfejsy AI.