Aller au contenu

Les analyses optionnelles, l’enregistrement des sessions et la publicité restent désactivés sauf si vous les acceptez. Vous pouvez les refuser et utiliser Transglot. Modifiez votre choix à tout moment dans Préférences en matière de cookies. Politique en matière de cookies

pour les équipes qui fusionnent chaque jour

Localisation continue : chaque langue, à chaque fusion.

La localisation continue traduit les chaînes nouvelles ou modifiées au fur et à mesure que votre code évolue, plutôt que lors d’une phase distincte avant chaque publication. Chaque langue reste prête à être publiée avec le code qui en a besoin.

Une simulation des deux méthodes de travail, pas une mesure. Cliquez sur Fusionner une modification et lisez la colonne de droite : c’est ce que voient les utilisateurs de cette langue.
acme / web
mainAdd a gift cardcheckout.gift_card
frAjouter une carte cadeautraduites
deGeschenkkarte hinzufügentraduites
jaギフトカードを追加traduites
arأضف بطاقة هديةtraduites
pt-BRAdicionar vale-presentetraduites
Langues prêtes à être publiées5 sur 5
Chaînes en retard sur mainaucun
la réponse courte

Qu’est-ce que la localisation continue ?

La localisation continue est une méthode de travail dans laquelle les chaînes nouvelles ou modifiées sont envoyées automatiquement à la traduction dès qu’elles changent, et le texte traduit revient dans le produit sans planification humaine.

Il n’y a pas de phase de traduction, car la traduction ne s’arrête jamais. Un développeur fusionne une chaîne, les traductions suivent dans le même flux que le code, et une publication n’attend plus aucun fichier.

C’est la moitié « localisation » de la livraison continue. Une équipe qui fusionne chaque jour et remet la traduction toutes les quelques semaines a des langues en retard sur son code pendant la majeure partie du mois. La localisation continue réduit cet écart à la durée d’une seule exécution.

Cela ne signifie pas que des sorties machine sont publiées sans relecture. Vous décidez quelles chaînes nécessitent une intervention humaine, et une publication ne peut contenir que ce qui a été relu.

localisation continue vs traditionnelle

La différence réside dans le moment où la traduction a lieu, pas dans qui la fait.

Traducteurs, relecteurs et glossaires existent dans les deux colonnes. Ce qui change, c’est le moment où le travail commence et la taille de chaque lot.
Côte à côte
Quand la traduction a lieu
Dans une phase avant chaque publication
Ce qui le déclenche
Quelqu’un exporte un fichier
La taille de chaque lot
Des semaines de chaînes d’un coup
Ce qu’attend une publication
Le retour du fichier
Une modification tardive de copie
Un autre aller-retour
Ce sur quoi travaille le traducteur
Un tableau de chaînes
Langues au lancement
Échelonnées, une vague après l’autre
une chaîne, du début à la fin

Comment fonctionne la localisation continue

Suivez une nouvelle chaîne tout au long du cycle. Chaque étape montre ce que vous verriez réellement.

votre terminal, ou votre journal CI
+ "checkout.gift_card": "Add a {brand} gift card"
$ git push origin main
$ transglot push --wait
push locales/en.json (en, json_nested)
Batch: #4182
$ transglot pull
written locales/fr.json
written locales/ja.json
checkout.gift_card
sourceAdd a {brand} gift card
frAjouter une carte cadeau {brand}Brouillon Glossa
de{brand}-Geschenkkarte hinzufügendepuis la mémoire, 0 mot
ja{brand} ギフトカードを追加Brouillon Glossa
arأضف بطاقة هدية {brand}Brouillon Glossa
les quatre portes, une exécution
Espaces réservés1 corrigé
Formes pluriellesréussi
Termes du glossaireréussi
Longueurréussi
ja · espace réservé perdu, réparé une fois, vérifié à nouveauギフトカードを追加{brand} ギフトカードを追加
cart.save
source modifiéeSave Save draft
frEnregistrerrévisé par une personne : conservé, signaléSuggestion : Enregistrer le brouillon
deEntwurf speichernligne machine : traduite à nouveau
pull requestmis à jour sur place
Mettre à jour les traductionstransglot/sync → mainouvert, un par dépôt
locales/fr.json+3 −1
locales/de.json+3 −1
locales/ja.json+3 −1
ou, sur une demande de tirage sur GitHub, commenter/translate

La modification atteint Transglot via la CLI, l’action GitHub ou l’application sur votre hôte Git. Les fichiers sources sont analysés dans l’un des 20 formats natifs, et chaque chaîne est comparée à ce que le projet contient déjà. Seules les chaînes nouvelles ou modifiées poursuivent le processus.

Une correspondance exacte issue de la mémoire de traduction remplit la ligne et ne coûte aucun mot. Le reste est envoyé à Glossa avec votre glossaire, votre guide de style et le contexte de cette clé.

Les espaces réservés, les formes plurielles, les termes du glossaire et la longueur sont vérifiés sur chaque ligne à chaque exécution. Un espace réservé incorrect, une forme plurielle manquante ou un terme de glossaire interdit est corrigé une fois puis revérifié ; s’il échoue une seconde fois, il est refusé et non livré. Une ligne qui dépasse seulement sa limite de longueur est écrite, et à partir du plan Team, l’approbation automatique ou une exécution QA la signale pour relecture.

Une exécution n’écrase jamais une ligne qu’une personne a modifiée ou révisée. Si la source change ultérieurement, le texte reste en place, l’exécution compte la ligne et vous en informe, et à partir du forfait Équipe, une mise à jour suggérée apparaît à côté, en attente d’acceptation.

Les applications Git valident les fichiers de locale dans une branche de synchronisation unique et maintiennent une seule demande de tirage (pull request) à jour. Sur GitHub, commentez /translate sur une demande de tirage et les fichiers atterrissent sur la branche propre à cette demande. Ou publiez vers le CDN, et le produit en cours d’exécution prend en compte le changement sans aucune nouvelle version.

où les équipes se brûlent les ailes

Six façons dont la localisation continue échoue, et ce qui empêche chacune d’elles

Une exécution écrase le travail d’une personne

Chaque rédacteur vérifie d’abord l’état de la ligne : une exécution, une correspondance en mémoire et un push. Une ligne modifiée ou révisée par une personne est conservée, et l’exécution la signale.

fr, révisé, source vient de changer

conservé, compté, signalé

Une chaîne brisée atteint la production

Chaque jeton entré doit ressortir. Sur un projet ICU, un message qui provoquerait une erreur au moment du rendu est exclu de la demande de tirage, du connecteur et du bundle CDN, et l’exécution le nomme explicitement.

{count, plural, one {# article}

exclu du fichier, nommé dans l’exécution

Le dépôt se remplit de pull requests automatisées

Une branche de synchronisation et une seule pull request par dépôt. Deux pushes rapides convergent vers celle-ci au lieu d’en ouvrir une seconde.

#812 #815 #819 #823 mise à jour l10n

#812 transglot/sync, mis à jour sur place

Une modification source laisse les anciennes traductions derrière

Chaque ligne cible enregistre la source pour laquelle elle a été rédigée, ainsi toute chaîne modifiée est immédiatement identifiée comme obsolète dans toutes les langues, et seule cette clé est retraitée.

fr : placeholder manquant dans le brouillon, réparé lors de la nouvelle tentative

fr, de, ja sont retraités pour cette unique clé

Chaque exécution facture à nouveau l’ensemble du projet

Une exécution est dimensionnée selon les modifications. Une chaîne inchangée n’est pas envoyée, une correspondance exacte en mémoire ne coûte aucun mot, et une ligne attribuée à une personne est refusée avant toute dépense.

le fichier contient 48 000 mots

cette exécution : 60 mots

Une pull request inachevée efface un fichier de locale

Si le serveur ne signale aucune entrée pour une locale, la pull refuse d’écraser un fichier contenant du contenu et quitte avec le code 1, ce qui arrête le pipeline à cet endroit.

pull : 0 entrées pour ja, le fichier contient 1 204 éléments

refus d’écraser locales/ja.json avec un bundle vide

  • run 4182 fr : espace réservé manquant dans le brouillon, réparé lors de la nouvelle tentative
  • run 4182 de : 3 lignes conservées, une personne en est responsable
  • run 4182 ja : 41 lignes issues de la mémoire, 0 mot
  • run 4183 ar : forme plurielle manquante après nouvelle tentative, ligne refusée
  • pull écriture de locales/pt-BR.json
  • sync transglot/sync mis à jour, pull request #812
mesuré par rapport aux deux que vous comparez

Les trois se connectent à votre dépôt. Ce qui diffère, c’est ce qui se passe lorsque vous fusionnez.

Extrait des pages officielles de chaque entreprise le 5 novembre 2026. La ligne de prix provient de nos pages de comparaison, liées ci-dessous, qui présentent le plan et le calcul. Les prix et les plans évoluent, vérifiez-les avant de décider.

Transglot
Une nouvelle chaîne est fusionnée
Traduit par défaut
Le push lance l’exécution. Un paramètre du projet permet de la désactiver.
Une traduction échoue à un contrôle
Réparé une fois, puis refusé
Pour un espace réservé, une forme plurielle ou un terme interdit incorrect, sur chaque ligne de chaque exécution. Un dépassement de longueur est signalé. Sur un projet ICU, une ligne incorrecte reste exclue de la pull request, des connecteurs et du CDN.
Une personne a déjà modifié la ligne
L’exécution refuse de l’écrire
Il en va de même pour une correspondance en mémoire et un push. Si la source change ultérieurement, l’exécution signale la ligne.
Pull requests sur un dépôt très actif
Une branche, une pull request
Mis à jour sur place à chaque push.
Ce que le plan comptabilise
Mots traduits, une fois par langue
Les correspondances exactes en mémoire sont gratuites. Le stockage d’une chaîne est gratuit.
Ce qui finance l’IA
Les mots du forfait
Cela n’est pas facturé séparément.
Le même travail : 5,000 chaînes dans 10 langues
$39 par mois
Team, traduction incluse
GitHub, GitLab, Bitbucket, Azure Repos, une CLI et un serveur MCP
Tous
Les applications Git sont disponibles à partir du plan Team et couvrent les éditions cloud.
utilisez ce que vous exécutez déjà

Lancez-le depuis l’endroit où se trouvent vos chaînes. Chaque porte mène au même pipeline.

Même mémoire, glossaire, portes et révision, quelle que soit la porte empruntée par une chaîne.
.github/workflows/translations.yml
on:
push:
branches: [main]
jobs:
translations:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v7
- uses: transglot/transglot-action@v1
with:
token: ${{ secrets.TRANSGLOT_TOKEN }}
quoi faire en premier

Comment configurer la localisation continue

  1. Extraire les chaînes du code

    Chaque chaîne visible par l’utilisateur doit avoir une clé stable dans un fichier de locale. Transglot prend en charge 20 formats, conservez donc celui que vous utilisez déjà.

  2. Connecter le dépôt

    La commande d’initialisation détecte vos fichiers de locale, vous connecte via le navigateur, téléverse ce que vous avez déjà et lance la première traduction.

  3. Exécuter à chaque fusion

    Ajoutez l’action GitHub, appelez la CLI depuis n’importe quel autre CI, ou installez l’application pour GitHub, GitLab, Bitbucket ou Azure Repos.

  4. Déterminer ce qui nécessite une intervention humaine

    Définissez min_state sur reviewed dans une règle de pull request : ce fichier ne contiendra que les chaînes révisées par une personne. Laissez cette option désactivée et les brouillons seront déployés.

faites le calcul avec vos propres chiffres

Ce que coûte l’exécution à chaque fusion : les mots qui ont changé.

Un mot est un mot source, compté une fois par langue cible. Une exécution est dimensionnée selon les modifications : ainsi, une fusion qui touche douze mots dans cinq langues compte soixante mots, quelle que soit la taille du projet.

25
40
6
20,000
Mots par mois26,000sur ces chiffres · 25 fusions par semaine, 40 mots chacune, 6 langues

Tient dans le plan Starter : $19/mo, 300,000 mots par mois.

Cela représente environ 9% du quota.

Première exécution, une fois120,000Vos chaînes existantes dans toutes les langues. Les traductions que vous importez ne sont pas retraduites.

Cela ne concerne que la traduction. Les contrôles qualité, les brouillons de ton de marque et les corrections comptent également comme des mots, tandis que les correspondances exactes issues de la mémoire de traduction sont gratuites. La CLI et l’action GitHub démarrent avec le plan Starter, et les applications pour GitHub, GitLab, Bitbucket et Azure Repos démarrent avec le plan Team.

ce qu’elle ne fera pas pour vous

Trois problèmes que la localisation continue ne résout pas

Chaînes encore intégrées au code

Un pipeline ne peut traduire que ce qu’il peut lire. Les chaînes codées en dur et les phrases assemblées à partir de fragments doivent d’abord être corrigées ; c’est souvent la raison principale qui bloque un déploiement.

Personne ne possède la terminologie

L’automatisation déplace les chaînes. Elle ne décide pas de la façon dont votre produit nomme les éléments. Quelqu’un doit gérer le glossaire, sinon une langue peu consultée peut dériver sans que personne ne s’en aperçoive.

Contenu nécessitant un jugement humain

Les textes juridiques, les tarifs et les slogans de marque méritent l’attention d’une personne. Envoyez-les en revue et tenez-les à l’écart des fichiers livrés jusqu’à validation.

FAQ sur la localisation continue

Les questions que se posent les équipes avant de l’activer.

Qu’est-ce que la localisation continue ?
Une méthode de travail où les nouvelles chaînes et les modifications sont envoyées automatiquement en traduction dès qu’elles changent, et où le texte traduit revient dans le produit sans transfert planifié. Elle remplace la phase de traduction précédant une version par un petit traitement après chaque modification.
La localisation traditionnelle regroupe les chaînes dans un fichier, l’envoie à l’approche d’une version et attend. La localisation continue traite chaque modification au fur et à mesure : les éléments sont plus petits, les langues sont lancées simultanément, et une modification tardive ne nécessite que le retraitement d’une clé plutôt qu’un nouvel aller-retour complet.
Non. Le CI/CD compile, teste et déploie le code. La localisation continue fait avancer les traductions en parallèle. Elles se rejoignent dans le pipeline : le push qui lance vos tests peut aussi envoyer les chaînes en traduction et récupérer les fichiers.
Non. Les applications pour GitHub, GitLab, Bitbucket et Azure Repos réagissent à un push sans rien ajouter à votre pipeline, et les connecteurs de contenu réagissent aux modifications dans un CMS ou une boutique. La CLI et l’action GitHub sont là si vous souhaitez les intégrer à votre propre flux de travail.
Non. Les brouillons peuvent être publiés, ou une règle de pull peut n’inclure que ce qu’une personne a validé, fichier par fichier. Les relecteurs travaillent dans l’éditeur avec les termes du glossaire, les correspondances de mémoire de traduction et les captures d’écran à côté de chaque ligne.
Non. Une exécution, une correspondance de mémoire et un push vérifient d’abord la ligne, et toute ligne modifiée ou validée par une personne est préservée. Si sa source change ultérieurement, le texte reste, l’exécution compte la ligne et la signale, et à partir du forfait Team, une mise à jour suggérée est jointe pour acceptation.
Elle est souvent plus pertinente pour une petite équipe, car personne n’a pour rôle de gérer les transferts. Si vous publiez dans une seule langue sans prévoir d’en ajouter une seconde, cela peut attendre.
Le volume d’une exécution est estimé avant son démarrage. L’offre gratuite impose un plafond strict. Un forfait payant s’arrête à son quota sauf si vous activez le dépassement facturé, lequel respecte un plafond de dépenses que vous définissez. En CI, la CLI quitte avec le code 3 lorsqu’une exécution dépasserait la limite, permettant au pipeline d’agir en conséquence.
Oui, sur GitLab.com, Bitbucket Cloud et Azure DevOps Services. Les applications ne couvrent pas GitLab auto-hébergé ni Bitbucket Data Center, mais la CLI fonctionne dans n’importe quel CI disposant de Node 22 et pouvant accéder à l’API.
Oui. Les connecteurs de contenu lisent depuis un CMS, une boutique ou un centre d’aide, et ceux bidirectionnels renvoient la langue validée. Certains sont en import uniquement ; la page de chaque connecteur précise cette information.
Oui. Publiez un locale sur le CDN et votre produit le lit en temps réel via les SDK d’exécution. L’URL la plus récente est mise en cache pendant soixante secondes, chaque version publiée conserve sa propre URL et les vingt dernières versions sont conservées.
L’outil d’importation transfère les projets, les clés et les traductions existantes depuis Lokalise, Phrase, Crowdin, Transifex, Weblate and POEditor. Les traductions importées sont considérées comme un travail humain, donc aucune exécution ne les écrase. C’est gratuit sur tous les forfaits et cela s’effectue en une seule fois.