gtx-cli@2.3.0
Vue d’ensemble
Dans gtx-cli 2.3.0, nous avons mis à jour le comportement des commandes translate et upload et amélioré la visibilité du pipeline de traduction.
Translate
Historiquement, translate déclenchait à la fois les traductions et exécutait en arrière-plan une configuration de projet ponctuelle (générant le contexte et le glossaire que vous voyez sur votre dashboard).
Sur de petits projets, cela était rapide ; sur de grandes bases de code, la configuration pouvait prendre suffisamment de temps pour déclencher un timeout, donnant l’impression qu’il y avait une erreur de traduction.
Alors que les utilisateurs pensaient que translate avait échoué, la configuration se terminait de façon asynchrone et les traductions étaient générées mais non téléchargées, entraînant une expérience utilisateur incomplète et déroutante.
Configuration
La configuration est désormais une étape distincte. Nous l’avons optimisée pour que les expirations de délai soient rares.
Mais comme nous savons que la configuration peut encore échouer, la traduction ne dépend plus de la fin de cette étape. Voici maintenant à quoi ressemble le pipeline :
- Upload : envoi des fichiers et confirmation de la réussite.
- Configuration (uniquement si nécessaire) : lancement d’un job de configuration et attente ; en cas d’échec ou d’expiration de délai, on passe à la suite.
- Traduction : création des jobs de traduction à partir des fichiers que vous avez déjà envoyés.
Si la configuration se termine à temps, parfait. En cas d’échec ou d’expiration de délai, nous continuons et nous vous indiquons ce qui s’est passé. Vous obtenez quand même des traductions.
Ce que vous verrez en exécutant npx gtx-cli translate :
Démarrage de la traduction...
Fichiers à traduire :
- your/file/path.mdx
- ...
Envoi des fichiers vers l'API General Translation...
✔ Fichiers envoyés avec succès
Configuration du projet...
# Si la configuration réussit
Configuration terminée avec succès.
# Si la configuration expire
⚠ Délai de configuration dépassé — poursuite sans configuration : Délai d'attente dépassé lors de la génération de la configuration
# Si la configuration échoue
⚠ Échec de la configuration — poursuite sans configuration : <error message>
# Dans tous les cas, poursuite avec les traductions
Création de 12 traduction(s)
[0/12] traductions terminées
your/file/path.mdx [es]Avec ce changement, nous pouvons désormais garantir que vos traductions seront générées même dans le cas peu probable où la configuration échouerait.
Nous apprécions également que cela vous donne plus de visibilité sur la façon dont et à quel endroit nous générons le contenu qui influence vos traductions, et que cela rende l’ajout de nouvelles étapes de configuration sans risque, puisqu’elles n’empêcheront jamais la traduction d’avoir lieu.
Upload
Nous avons également rendu upload plus flexible. Les premières versions supposaient que vous envoyiez toujours un fichier source avec ses traductions. Cela ne correspond pas à tous les workflows. Désormais, vous pouvez :
- Envoyer uniquement des fichiers source (pas encore de traductions).
- Envoyer sources + traductions ensemble.
Nous détectons toujours automatiquement les traductions à partir de la structure de votre dépôt et de votre configuration. Une fois l’envoi terminé, vous verrez immédiatement les fichiers dans votre dashboard.
Si ceci est votre gt.config.json :
{
"defaultLocale": "en",
"locales": ["es", "fr"],
"files": {
"json": { "include": ["src/i18n/en/**/*.json"] }
}
}Exécution de npx gtx-cli upload :
# Sources uniquement (aucune traduction locale trouvée) :
Démarrage de l'envoi...
Fichiers à envoyer :
- src/i18n/en/common.json -> es, fr
...
Envoi de 1 fichier(s) vers General Translation...
✔ Fichiers envoyés avec succès
Terminé !
# Dans votre tableau de bord, vous verrez :
# src/i18n/en/common.json
# sans traductions correspondantes pour l'instant.Si des traductions locales sont présentes et détectées automatiquement :
Début de l'envoi...
Fichiers à envoyer :
- src/i18n/en/common.json -> es, fr
Envoi de 3 fichier(s) vers General Translation...
✔ Fichiers envoyés avec succès
Terminé !
# Dans votre tableau de bord, vous verrez :
# src/i18n/en/common.json
# ainsi que les versions traduites en espagnol et en français dans le menu déroulant des langues.Si le fichier de traduction d’une locale est manquant, nous envoyons la source et ignorons la traduction manquante.
Si vous avez des traductions locales mais que vous souhaitez uniquement envoyer les sources, supprimez les locales de gt.config.json avant d’exécuter upload :
{
"defaultLocale": "en",
"locales": [],
"files": {
"json": { "include": ["src/i18n/en/**/*.json"] }
}
}Les uploads écrasent les traductions existantes
Attention : Lorsque vous exécutez
upload, tout fichier traduit que nous détectons et envoyons pour un couple fichier/locale remplace ce qui est actuellement stocké pour ce fichier/cette locale.
- Pour envoyer uniquement les sources, supprimez les locales cibles de
gt.config.jsonavantupload.- Si vous devez d’abord vérifier les modifications, utilisez un projet séparé ou exportez les traductions actuelles avant de lancer
upload.- Les traductions manquantes sont ignorées ; les traductions existantes sont remplacées.