Traduzione con IA integrata

Data di pubblicazione: 12 novembre 2024

Utilizza l'API Translator in Chrome per tradurre il testo nel browser, utilizzando modelli di IA locali.

Il tuo sito web potrebbe già offrire contenuti in più lingue, per renderli accessibili a un pubblico globale. Con l'API Translator, gli utenti possono contribuire nella loro lingua madre. Ad esempio, gli utenti possono partecipare alle chat di assistenza nella loro lingua madre e il tuo sito può tradurla nella lingua utilizzata dagli agenti dell'assistenza prima che esca dal dispositivo dell'utente. Ciò crea un'esperienza fluida, rapida e inclusiva per tutti gli utenti.

La traduzione dei contenuti sul web di solito richiede l'utilizzo di un servizio cloud. Innanzitutto, i contenuti di origine vengono caricati su un server, che esegue la traduzione in una lingua di destinazione, quindi il testo risultante viene scaricato e restituito all'utente. Eseguendo la traduzione sul client, risparmi il tempo necessario per le corse del server e il costo di ospitare il servizio di traduzione.

Disponibilità

Sebbene la lingua di destinazione selezionata sia sempre nota, in alcune situazioni la lingua di origine potrebbe essere sconosciuta, ad esempio con i contenuti generati dagli utenti. In questi casi, la proposta dell'API Translator include sia l'API Translator sia l'API Language Detector, disponibile anche in una prova dell'origine. Registrati a entrambe le prove dell'origine per utilizzare queste API insieme.

Rilevamento di funzionalità

Per determinare se l'API Traduttore è supportata, esegui il seguente snippet di rilevamento delle funzionalità.

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

Controllare il supporto delle coppie di lingue

La traduzione viene gestita con i pacchetti di lingue, scaricati su richiesta. Un pacchetto di lingue è come un dizionario per una determinata lingua. Questi pacchetti sono accoppiati alla funzione canTranslate() asincrona, che consente di determinare se una coppia di lingue è supportata.

La funzione canTranslate() richiede un parametro options con due campi:

  • sourceLanguage: lingua corrente per il testo.
  • targetLanguage: la lingua finale in cui deve essere tradotto il testo.

Utilizza i codici brevi della lingua BCP 47 come stringhe. Ad esempio, 'es' per lo spagnolo o 'fr' per il francese.

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

La funzione canTranslate() può restituire uno dei seguenti risultati:

  • no: non è possibile per questo browser eseguire la traduzione come richiesto.
  • readily: il browser può tradurre come richiesto.
  • after-download: il browser può eseguire la traduzione, ma solo dopo aver scaricato il modello o i language pack pertinenti.

Puoi ascoltare l'avanzamento del download utilizzando l'evento downloadprogress:

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

Se il download non va a buon fine, gli eventi downloadprogress non vengono più emessi e la promessa ready viene rifiutata.

Crea ed esegui il traduttore

Per creare un traduttore, chiama la funzione translation.createTranslator() asincrona. Come canTranslate(), richiede un parametro opzioni con due campi, uno per sourceLanguage e uno per targetLanguage.

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

Quando hai un traduttore, chiama la funzione asincrona di translate() per tradurre il testo.

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

Limitazioni nella prova dell'origine

Durante la prova dell'origine si applicano le seguenti limitazioni.

Coppie di lingue supportate

Al momento, è possibile scaricare fino a tre pacchetti di lingue per la traduzione. Ci impegniamo ad ampliare la gamma di lingue supportate nelle release future, mantenendo al contempo standard elevati per la privacy degli utenti. Puoi verificare se la coppia di lingue necessaria è supportata con la funzione canTranslate().

È possibile che determinate coppie di lingue meno utilizzate vengano utilizzate per il fingerprinting. Ad esempio, è più comune tradurre dall'inglese allo spagnolo che tra lingue meno comuni, come il gaelico e il catalano. Una coppia di lingue meno comune potrebbe essere considerata un punto dati per l'identificazione dell'utente.

Durante la prova dell'origine, stiamo limitando le potenziali coppie di lingue traducibili per proteggere la privacy degli utenti. Le coppie di lingue devono soddisfare i seguenti criteri:

  • Sia la lingua di origine sia quella di destinazione sono impostate come lingue preferite in Chrome.
  • In alternativa, una delle lingue è impostata come lingua preferita in Chrome e l'altra è tra le seguenti lingue più diffuse:
    • Inglese (en)
    • Cinese mandarino (zh; semplificato) o mandarino di Taiwan (zh-Hant; tradizionale)
    • Giapponese (ja)
    • Portoghese (pt)
    • Russo (ru)
    • Spagnolo (es)
    • Turco (tr)
    • Hindi (hi)
    • Vietnamita (vi)
    • Bengalese (bn)

Ignorare le limitazioni relative alle lingue per i test locali

Per la prototipazione locale, puoi bypassare questi controlli eseguendo Chrome con l'opzione della riga di comando --disable-features=TranslationAPIAcceptLanguagesCheck. In alternativa, imposta chrome://flags/#translation-api su Attiva senza limite di pacchetti di lingue.

Visita la pagina chrome://on-device-translation-internals/ per installare e disinstallare manualmente i language pack.

Traduzioni sequenziali

Le traduzioni vengono elaborate in sequenza. Se invii grandi quantità di testo da tradurre, le traduzioni successive vengono bloccate fino al completamento di quelle precedenti.

Per garantire la migliore reattività delle tue richieste di traduzione, raggruppale e valuta la possibilità di visualizzare un'interfaccia di caricamento, ad esempio una rotellina, per indicare che è in corso una traduzione.

Disponibilità dei web worker

Durante la prova dell'origine, l'API Translator è supportata solo dal thread principale. Abbiamo intenzione di supportarla nei web worker una volta che l'API sarà disponibile su larga scala.

Demo

Puoi visualizzare l'API Translator, utilizzata in combinazione con l'API Language Detector, nel sandbox dell'API Translator e Language Detector.

Impegno di standardizzazione

Stiamo lavorando per standardizzare l'API Translator, in modo da garantire la compatibilità tra browser.

La nostra proposta per le API ha ricevuto l'assistenza dalla community ed è stata trasferita nel W3C Web Incubator Community Group per ulteriori discussioni. Il team di Chrome ha richiesto feedback al W3C Technical Architecture Group e a Mozilla e WebKit per conoscere le posizioni relative agli standard.

Partecipare e condividere feedback

Inizia subito a testare l'API Traduttore partecipando alla prova dell'origine e condividi il tuo feedback. Il tuo contributo può influire direttamente sul modo in cui sviluppiamo e implementiamo le versioni future di questa API e di tutte le API di IA integrate.