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à
- Partecipa alla prova dell'origine dell'API Translator, eseguita in Chrome 131-137, per testare l'API con utenti reali in produzione. Le prove dell'origine attivano la funzionalità per tutti gli utenti dell'origine su Chrome. Scopri come iniziare a utilizzare le prove delle origini.
- Segui la nostra implementazione in ChromeStatus.
- La proposta per l'API Translator è aperta alla discussione.
- Partecipa al programma di anteprima in anteprima per scoprire le nuove API integrate di IA e accedere alle discussioni nella nostra mailing list.
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
)
- Inglese (
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.
- Per feedback sull'implementazione di Chrome, invia una segnalazione di bug o una richiesta di funzionalità.
- Discutere del design dell'API Translator su GitHub commentando un problema esistente o aprendone uno nuovo.
- Partecipa al progetto relativo agli standard entrando a far parte del gruppo della community Web Incubator.