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.
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.
La différence réside dans le moment où la traduction a lieu, pas dans qui la fait.
| Ce qui change | Remise par lots | Continue |
|---|---|---|
| Côte à côte | ||
| Quand la traduction a lieu | Dans une phase avant chaque publication | À chaque modification de chaîne |
| Ce qui le déclenche | Quelqu’un exporte un fichier | Un push, une fusion ou une modification de contenu |
| La taille de chaque lot | Des semaines de chaînes d’un coup | Les chaînes d’une seule modification |
| Ce qu’attend une publication | Le retour du fichier | La relecture, sur les chaînes que vous avez marquées pour cela |
| Une modification tardive de copie | Un autre aller-retour | Une nouvelle exécution pour cette seule clé |
| Ce sur quoi travaille le traducteur | Un tableau de chaînes | La ligne, avec ses termes de glossaire, ses correspondances en mémoire et ses captures d’écran |
| Langues au lancement | Échelonnées, une vague après l’autre | Ensemble, avec la fonctionnalité |
- 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
- Quand la traduction a lieu
- À chaque modification de chaîne
- Ce qui le déclenche
- Un push, une fusion ou une modification de contenu
- La taille de chaque lot
- Les chaînes d’une seule modification
- Ce qu’attend une publication
- La relecture, sur les chaînes que vous avez marquées pour cela
- Une modification tardive de copie
- Une nouvelle exécution pour cette seule clé
- Ce sur quoi travaille le traducteur
- La ligne, avec ses termes de glossaire, ses correspondances en mémoire et ses captures d’écran
- Langues au lancement
- Ensemble, avec la fonctionnalité
Comment fonctionne la localisation continue
Suivez une nouvelle chaîne tout au long du cycle. Chaque étape montre ce que vous verriez réellement.
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.
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
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.
| Ce qui se passe | Transglot | Lokalise | Crowdin |
|---|---|---|---|
| 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. | Traduit une fois la configuration effectuée Les automatisations sont désactivées par défaut lors de la création de clés et de l’importation de fichiers. Un flux de travail avec une étape IA s’exécute selon sa planification. | Traduit une fois activé Dans Paramètres, Auto-Translate, il s’exécute ensuite à chaque importation. La synchronisation Git s’exécute toutes les heures par défaut. |
| 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. | Un contrôle de niveau Erreur bloque l’enregistrement dans l’éditeur Chaque contrôle est défini sur Désactivé, Avertissement ou Erreur. | Un contrôle de niveau Erreur bloque l’enregistrement Chaque contrôle est défini sur Avertissement ou Erreur. |
| 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. | Les automatisations remplissent les valeurs vides par défaut Une option de forçage et une action d’effacement écrasent les valeurs remplies. | Les options conservent les lignes humaines et approuvées Une option de remplacement global existe également. |
| Pull requests sur un dépôt très actif | Une branche, une pull request Mis à jour sur place à chaque push. | Une nouvelle branche pour chaque pull request Nommée avec un horodatage. | Une branche de service, synchronisée toutes les heures Toutes les heures est la valeur par défaut, et l’intervalle peut être modifié. |
| 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. | Mots traités La langue de base et la langue cible sont toutes deux comptabilisées. | Mots hébergés Mots à traduire, multipliés par les langues cibles. |
| Ce qui finance l’IA | Les mots du forfait Cela n’est pas facturé séparément. | Quotas de mots IA selon le forfait Les mots IA Standard et Pro constituent des lignes distinctes du forfait. | Un solde séparé ou votre propre clé L’IA gérée par Crowdin est payée via des crédits, en dehors de l’abonnement. |
| Le même travail : 5,000 chaînes dans 10 langues | $39 par mois Team, traduction incluse | $1,049 par mois Advanced (billed yearly) | $138 par mois Pro with 560K hosted words (billed monthly), IA en supplément |
| 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. | Tous Les intégrations sont disponibles sur tous les forfaits. | Tous Il prend également en charge Bitbucket Server. |
- Une nouvelle chaîne est fusionnée
- Traduit par défautLe 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’écrireIl 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 requestMis à jour sur place à chaque push.
- Ce que le plan comptabilise
- Mots traduits, une fois par langueLes correspondances exactes en mémoire sont gratuites. Le stockage d’une chaîne est gratuit.
- Ce qui finance l’IA
- Les mots du forfaitCela n’est pas facturé séparément.
- Le même travail : 5,000 chaînes dans 10 langues
- $39 par moisTeam, traduction incluse
- GitHub, GitLab, Bitbucket, Azure Repos, une CLI et un serveur MCP
- TousLes applications Git sont disponibles à partir du plan Team et couvrent les éditions cloud.
- Une nouvelle chaîne est fusionnée
- Traduit une fois la configuration effectuéeLes automatisations sont désactivées par défaut lors de la création de clés et de l’importation de fichiers. Un flux de travail avec une étape IA s’exécute selon sa planification.
- Une traduction échoue à un contrôle
- Un contrôle de niveau Erreur bloque l’enregistrement dans l’éditeurChaque contrôle est défini sur Désactivé, Avertissement ou Erreur.
- Une personne a déjà modifié la ligne
- Les automatisations remplissent les valeurs vides par défautUne option de forçage et une action d’effacement écrasent les valeurs remplies.
- Pull requests sur un dépôt très actif
- Une nouvelle branche pour chaque pull requestNommée avec un horodatage.
- Ce que le plan comptabilise
- Mots traitésLa langue de base et la langue cible sont toutes deux comptabilisées.
- Ce qui finance l’IA
- Quotas de mots IA selon le forfaitLes mots IA Standard et Pro constituent des lignes distinctes du forfait.
- Le même travail : 5,000 chaînes dans 10 langues
- $1,049 par moisAdvanced (billed yearly)
- GitHub, GitLab, Bitbucket, Azure Repos, une CLI et un serveur MCP
- TousLes intégrations sont disponibles sur tous les forfaits.
- Une nouvelle chaîne est fusionnée
- Traduit une fois activéDans Paramètres, Auto-Translate, il s’exécute ensuite à chaque importation. La synchronisation Git s’exécute toutes les heures par défaut.
- Une traduction échoue à un contrôle
- Un contrôle de niveau Erreur bloque l’enregistrementChaque contrôle est défini sur Avertissement ou Erreur.
- Une personne a déjà modifié la ligne
- Les options conservent les lignes humaines et approuvéesUne option de remplacement global existe également.
- Pull requests sur un dépôt très actif
- Une branche de service, synchronisée toutes les heuresToutes les heures est la valeur par défaut, et l’intervalle peut être modifié.
- Ce que le plan comptabilise
- Mots hébergésMots à traduire, multipliés par les langues cibles.
- Ce qui finance l’IA
- Un solde séparé ou votre propre cléL’IA gérée par Crowdin est payée via des crédits, en dehors de l’abonnement.
- Le même travail : 5,000 chaînes dans 10 langues
- $138 par moisPro with 560K hosted words (billed monthly), IA en supplément
- GitHub, GitLab, Bitbucket, Azure Repos, une CLI et un serveur MCP
- TousIl prend également en charge Bitbucket Server.
Lancez-le depuis l’endroit où se trouvent vos chaînes. Chaque porte mène au même pipeline.
Comment configurer la localisation continue
- 01
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à.
jsonyamlxliffarb - 02
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.
npx transglot@latest init - 03
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.
transglot push --wait - 04
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.
min_state: reviewed
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.
Tient dans le plan Starter : $19/mo, 300,000 mots par mois.
Cela représente environ 9% du quota.
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.
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 ?
En quoi la localisation continue diffère-t-elle de la localisation traditionnelle ?
La localisation continue est-elle identique au CI/CD ?
Ai-je besoin d’un pipeline CI/CD pour la localisation continue ?
La localisation continue signifie-t-elle aucune relecture humaine ?
Une exécution automatisée peut-elle écraser la modification d’un traducteur ?
La localisation continue vaut-elle le coup pour une petite équipe ?
Comment éviter qu’une exécution ne coûte plus cher que prévu ?
Fonctionne-t-elle avec GitLab, Bitbucket et Azure DevOps ?
Puis-je faire de la localisation continue sans Git ?
Les traductions peuvent-elles être mises à jour sans nouvelle version ?
Comment migrer un projet existant ?
41 connecteurs, déjà intégrés.
Connectez un dépôt. La prochaine fusion fait le reste.
Une commande détecte vos fichiers de langue, vous connecte via le navigateur et lance la première traduction.