Publié le 12 novembre 2024
Utilisez l'API Translator dans Chrome pour traduire du texte dans le navigateur à l'aide de modèles d'IA locaux.
Il est possible que votre site Web propose déjà du contenu dans plusieurs langues pour le rendre accessible à une audience mondiale. Avec l'API Translator, les utilisateurs peuvent contribuer dans leur langue maternelle. Par exemple, les utilisateurs peuvent participer aux chats d'assistance dans leur langue maternelle, et votre site peut les traduire dans la langue utilisée par vos agents d'assistance avant qu'ils ne quittent l'appareil de l'utilisateur. Cela crée une expérience fluide, rapide et inclusive pour tous les utilisateurs.
La traduction de contenus sur le Web nécessite généralement l'utilisation d'un service cloud. Tout d'abord, le contenu source est importé sur un serveur, qui effectue la traduction dans une langue cible, puis le texte obtenu est téléchargé et renvoyé à l'utilisateur. En exécutant la traduction sur le client, vous économisez le temps requis par les aller-retours vers le serveur et le coût d'hébergement du service de traduction.
Disponibilité
- Rejoignez la phase d'évaluation de l'API Translator, qui s'exécute dans Chrome 131 à 137, pour tester l'API avec de vrais utilisateurs en production. Les essais d'origine activent la fonctionnalité pour tous les utilisateurs de votre origine sur Chrome. Découvrez comment faire vos premiers pas avec les essais d'origine.
- Suivez notre implémentation dans ChromeStatus.
- La proposition d'API Translator est ouverte à la discussion.
- Rejoignez le programme Preview anticipé pour découvrir en avant-première les nouvelles API d'IA intégrées et participer aux discussions sur notre liste de diffusion.
Bien que la langue cible sélectionnée soit toujours connue, il peut arriver que la langue source soit inconnue, par exemple pour les contenus générés par les utilisateurs. Dans ce cas, la proposition d'API Translator inclut à la fois l'API Translator et l'API Language Detector, également disponible en essai d'origine. Inscrivez-vous aux deux phases d'évaluation pour utiliser ces API ensemble.
Détection de fonctionnalités
Pour déterminer si l'API Translator est compatible, exécutez l'extrait de code de détection de fonctionnalités suivant.
if ('translation' in self && 'createTranslator' in self.translation) {
// The Translator API is supported.
}
Vérifier la compatibilité de la combinaison linguistique
La traduction s'effectue à l'aide de modules linguistiques, téléchargés à la demande. Un pack de langue est comme un dictionnaire pour une langue donnée. Ces packs sont associés à la fonction canTranslate()
asynchrone, qui vous permet de déterminer si une paire de langues est prise en charge.
La fonction canTranslate()
nécessite un paramètre options
avec deux champs:
sourceLanguage
: langue actuelle du texte.targetLanguage
: langue finale dans laquelle le texte doit être traduit.
Utilisez les codes courts de langue BCP 47 comme chaînes. Par exemple, 'es'
pour l'espagnol ou 'fr'
pour le français.
await translation.canTranslate({
sourceLanguage: 'en',
targetLanguage: 'fr',
});
// 'readily'
La fonction canTranslate()
peut renvoyer l'un des résultats suivants:
no
: ce navigateur ne peut pas effectuer la traduction demandée.readily
: le navigateur peut traduire comme demandé.after-download
: le navigateur peut effectuer la traduction, mais seulement après avoir téléchargé le modèle ou les packs de langues appropriés.
Vous pouvez écouter la progression du téléchargement à l'aide de l'événement downloadprogress
:
translator.ondownloadprogress = progressEvent => {
updateDownloadProgressBar(progressEvent.loaded, progressEvent.total);
};
Si le téléchargement échoue, les événements downloadprogress
cessent d'être émis et la promesse ready
est rejetée.
Créer et exécuter le traducteur
Pour créer un traducteur, appelez la fonction translation.createTranslator()
asynchrone. Comme canTranslate()
, elle nécessite un paramètre d'options avec deux champs, un pour sourceLanguage
et un pour targetLanguage
.
// Create a translator that translates from English to French.
const translator = await self.translation.createTranslator({
sourceLanguage: 'en',
targetLanguage: 'fr',
});
Une fois que vous avez un traducteur, appelez la fonction translate()
asynchrone pour traduire votre texte.
await translator.translate('Where is the next bus stop, please?');
// "Où est le prochain arrêt de bus, s'il vous plaît ?"
Limites de l'essai d'origine
Les limites suivantes s'appliquent pendant l'essai de l'origine.
Combinaisons linguistiques acceptées
Pour le moment, vous pouvez télécharger jusqu'à trois modules linguistiques pour traduction.
Nous nous engageons à élargir la gamme de langues disponibles dans les prochaines versions, tout en maintenant des normes élevées en matière de confidentialité des utilisateurs. Vous pouvez vérifier si la paire de langues dont vous avez besoin est compatible avec la fonction canTranslate()
.
Il est possible que certaines combinaisons linguistiques moins fréquemment utilisées soient utilisées pour l'empreinte digitale. Par exemple, il est plus courant de traduire de l'anglais vers l'espagnol que vers des langues moins courantes, comme le gaélique et le catalan. Une paire de langues moins courante peut être considérée comme un point de données pour l'identification des utilisateurs.
Pendant le test de l'origine, nous limitons les paires de langues pouvant être traduites afin de protéger la confidentialité des utilisateurs. Les paires de langues doivent respecter les critères suivants:
- La langue source et la langue de destination sont définies comme langues préférées dans Chrome.
- Ou l'une des langues est définie comme langue préférée dans Chrome, et l'autre figure parmi les langues populaires suivantes :
- Anglais (
en
) - Chinois mandarin (
zh
, simplifié) ou mandarin (Taïwan) (zh-Hant
, traditionnel) - Japonais (
ja
) - Portugais (
pt
) - Russe (
ru
) - Espagnol (
es
) - Turc (
tr
) - Hindi (
hi
) - Vietnamien (
vi
) - Bengalî (
bn
)
- Anglais (
Contournez les restrictions linguistiques pour les tests locaux
Pour le prototypage local, vous pouvez contourner ces vérifications en exécutant Chrome avec l'option de ligne de commande --disable-features=TranslationAPIAcceptLanguagesCheck
.
Vous pouvez également définir chrome://flags/#translation-api
sur Activer sans limite de pack de langues.
Accédez à chrome://on-device-translation-internals/
pour installer et désinstaller manuellement des packs de langue.
Traductions séquentielles
Les traductions sont traitées de manière séquentielle. Si vous envoyez de grandes quantités de texte à traduire, les traductions ultérieures sont bloquées jusqu'à ce que les premières soient terminées.
Pour une réactivité optimale de vos requêtes de traduction, regroupez-les et envisagez d'afficher une interface de chargement, comme une icône de chargement, pour indiquer qu'une traduction est en cours.
Disponibilité des nœuds de calcul Web
Pendant la phase d'évaluation, l'API Translator n'est compatible qu'avec le thread principal. Nous prévoyons de la prendre en charge dans les nœuds de calcul Web une fois que l'API sera largement disponible.
Démo
Vous pouvez voir l'API Translator, utilisée avec l'API Language Detector, dans le Playground de l'API Translator and Language Detector.
Effort de standardisation
Nous travaillons à la standardisation de l'API Translator afin d'assurer la compatibilité entre les navigateurs.
Notre proposition d'API a reçu l'appui de la communauté et a été transférée au groupe de la communauté de l'incubateur Web du W3C pour une discussion plus approfondie. L'équipe Chrome a demandé des commentaires au Groupe d'architecture technique du W3C et à Mozilla et WebKit pour connaître leur position sur les normes.
Participer et partager des commentaires
Commencez à tester l'API Traducteur dès maintenant en participant à la phase d'évaluation et envoyez-nous vos commentaires. Vos commentaires peuvent avoir un impact direct sur la manière dont nous développons et implémentons les futures versions de cette API, ainsi que toutes les API d'IA intégrées.
- Pour envoyer des commentaires sur l'implémentation de Chrome, envoyez un rapport de bug ou une demande de fonctionnalité.
- Discuter de la conception de l'API Translator sur GitHub en commentant un problème existant ou en en créant un
- Participez à l'élaboration des normes en rejoignant le groupe de la communauté Web Incubator.