Extension VSCode Project Translator pour la localisation multilingue de projets
Categories:
L’extension VSCode Project Translator offre aux développeurs une solution efficace de localisation multilingue de projets. Cette extension utilise la technologie IA pour réaliser une traduction automatique, d’un fichier unique à l’ensemble du dossier du projet, en maintenant l’intégrité de la structure et du format du code, tout en réduisant considérablement la charge de travail de localisation des documents. Pour les projets open source ou les logiciels commerciaux destinés à un public mondial, Project Translator améliore significativement l’efficacité et la cohérence de la traduction. Comparé aux méthodes de traduction manuelle traditionnelles, ce type d’outil automatisé peut traiter de grands volumes de contenu documentaire, particulièrement adapté aux projets dont la documentation est continuellement mise à jour.
核心功能特性
L’extension Project Translator possède une série de fonctionnalités puissantes qui constituent ensemble une solution complète de traduction multilingue de projets. L’extension prend en charge deux modes de traduction : au niveau dossier et au niveau fichier, pouvant être sélectionnés flexible selon les besoins du projet. En mode traduction de dossier, l’extension peut traiter récursivement les sous-dossiers, détecter automatiquement le contenu traduisible et maintenir la structure et la hiérarchie des dossiers d’origine. Ce mécanisme de traitement par lots rend la traduction de grands projets réalisable et efficace. L’extension est disponible gratuitement sur le VS Code Extensions Marketplace et le Open VSX Registry.
La traduction intelligente est l’un des avantages principaux de l’extension. Pendant le processus de traduction, l’extension maintient automatiquement l’intégrité de la structure du code, ne traduisant que les commentaires du code et le contenu documentaire, tout en conservant la logique du code inchangée. Pour les formats de données structurées comme JSON, XML, l’extension peut également maintenir leur intégrité structurelle d’origine. Cette conception garantit que les fichiers de code traduits peuvent toujours être compilés et exécutés normalement, évitant les problèmes de corruption du code dus à la traduction. L’extension offre également une qualité de traduction de documents techniques de niveau professionnel, capable de comprendre avec précision la terminologie technique et les relations contextuelles.
La flexibilité de configuration est une autre caractéristique majeure de Project Translator. Les utilisateurs peuvent configurer des dossiers sources et plusieurs dossiers cibles, prendre en charge des intervalles de traduction de fichiers personnalisés, définir les types de fichiers spécifiques à ignorer et sélectionner plusieurs options de modèles IA. Cette flexibilité permet à l’extension de s’adapter à diverses structures de projet et besoins de traduction. L’extension prend en charge plusieurs modèles IA grand public, notamment OpenAI, DeepSeek, Grok, etc. Les utilisateurs peuvent choisir le modèle approprié en fonction de leur budget et des exigences de qualité de traduction. Pour les projets utilisant Hugo ou d’autres générateurs de sites statiques, cette méthode de configuration basée sur les dossiers est particulièrement conviviale.
La conception de l’interface utilisateur de l’extension met l’accent sur l’expérience opérationnelle. Pendant le processus de traduction, un affichage de progression en temps réel est fourni, permettant aux utilisateurs de suspendre, reprendre ou arrêter la tâche de traduction à tout moment. L’extension maintient automatiquement la structure des dossiers cibles et prend en charge la traduction incrémentielle pour éviter le travail redondant. Lorsque les tâches de traduction nécessitent beaucoup de temps, cette contrôlabilité devient particulièrement importante. De plus, l’extension offre une fonctionnalité expérimentale de traduction différentielle, capable de ne traduire que le contenu modifié, réduisant ainsi l’utilisation de l’API et préservant mieux l’historique des versions.
翻译工作流程
Le flux de travail de traduction de Project Translator est soigneusement conçu pour garantir que l’ensemble du processus est à la fois efficace et fiable. Après que l’utilisateur déclenche la tâche de traduction via le panneau de commandes, l’extension traite progressivement le contenu source et génère les versions dans la langue cible selon un flux prédéfini.
flowchart TD
A[L'utilisateur déclenche la commande de traduction] e1@--> B{Vérifier la configuration}
B e2@-->|Non configuré| C[Afficher la boîte de dialogue de sélection de dossier]
C e3@--> D[Enregistrer les chemins source et cible sélectionnés par l'utilisateur]
D e4@--> E[Analyser les fichiers et dossiers sources]
B e5@-->|Configuré| E
E e6@--> F[Identifier les fichiers à traduire]
F e7@--> G[Trier les tâches de traduction par priorité]
G e8@--> H{L'utilisateur sélectionne le mode de traduction}
H e9@-->|Traduction standard| I[Lire le contenu du fichier source]
H e10@-->|Traduction différentielle| J[Lire le contenu des fichiers source et cible]
I e11@--> K[Appeler le modèle IA pour la traduction]
J e12@--> K
K e13@--> L[Générer les résultats de traduction]
L e14@--> M{Vérifier la qualité de la traduction}
M e15@-->|Vérification réussie| N[Écrire dans le fichier cible]
M e16@-->|Vérification échouée| O[Retourner ou réessayer]
N e17@--> P[Mettre à jour la progression de la traduction]
P e18@--> Q{Des fichiers à traduire restent-ils ?}
Q e19@-->|Oui| I
Q e20@-->|Non| R[Terminer la tâche de traduction]
R e21@--> S[Afficher le résumé de la traduction]
classDef start fill:#E3F2FD,stroke:#1565C0,stroke-width:1px,color:#0D47A1;
classDef work fill:#E8F5E9,stroke:#2E7D32,stroke-width:1px,color:#1B5E20;
classDef check fill:#FFF8E1,stroke:#EF6C00,stroke-width:1px,color:#E65100;
classDef done fill:#F3E5F5,stroke:#6A1B9A,stroke-width:1px,color:#4A148C;
classDef animate stroke:#EF6C00,stroke-width:2px,stroke-dasharray: 9\,5,stroke-dashoffset: 900,animation: dash 25s linear infinite;
class A start;
class e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15,e16,e17,e18,e19,e20,e21 animate;
class B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S work;
class B,H,M,Q check;
class S done;
Le flux de travail commence lorsque l’utilisateur sélectionne la commande de traduction via le panneau de commandes. L’extension vérifie d’abord si les chemins source et cible ont déjà été configurés. Si ce n’est pas le cas, une boîte de dialogue de sélection de dossier s’affiche pour que l’utilisateur spécifie les chemins. Une fois la configuration terminée, l’extension commence à analyser tous les fichiers et sous-dossiers du dossier source, en identifiant les types de fichiers nécessitant une traduction. L’extension filtre les fichiers qui ne doivent pas être traités en fonction des extensions de fichiers et des règles de chemin configurées.
Une fois l’identification terminée, l’extension trie les tâches de traduction par ordre de priorité, en veillant à ce que les fichiers importants soient traduits en premier. Les utilisateurs peuvent choisir le mode de traduction standard ou le mode de traduction différentielle. Le mode de traduction standard traduit l’intégralité du contenu du fichier, tandis que le mode de traduction différentielle ne traduit que les parties modifiées, ce mode étant plus adapté aux scénarios de mise à jour de contenu déjà traduit. Après avoir lu le contenu du fichier source, l’extension appelle le modèle IA configuré pour effectuer le traitement de traduction.
Une fois que le modèle IA renvoie les résultats de traduction, l’extension vérifie la qualité de la traduction. Le processus de vérification inclut la vérification de l’intégrité du format, de la cohérence de la terminologie et de la préservation des structures de code nécessaires. Si la vérification réussit, les résultats de traduction sont écrits dans le fichier cible, en maintenant la même structure de répertoire que le fichier source. Si la vérification échoue, l’extension tente une opération de retour en arrière ou une nouvelle traduction. Après avoir terminé la traduction de chaque fichier, l’extension met à jour la progression de la traduction jusqu’à ce que tous les fichiers à traduire soient traités. Enfin, l’extension affiche les informations récapitulatives de la tâche de traduction, y compris le nombre de fichiers traduits avec succès, la liste des fichiers en échec et des statistiques telles que le temps de traduction.
配置方法详解
Le système de configuration de l’extension Project Translator est conçu pour être à la fois flexible et intuitif. Les utilisateurs peuvent personnaliser le comportement de l’extension via l’interface de paramètres de VSCode ou en éditant directement le fichier de configuration. Les éléments de configuration principaux incluent les chemins source et cible de traduction, les paramètres du modèle IA, les règles de filtrage, etc.
Les projets de configuration sont principalement divisés en plusieurs catégories. La configuration des dossiers et fichiers définit les chemins d’entrée et de sortie de la traduction. Les utilisateurs peuvent spécifier plusieurs dossiers sources et leurs dossiers cibles correspondants. Chaque dossier source et cible nécessite un code de langue. L’extension prend en charge 28 langues, y compris le chinois simplifié, le chinois traditionnel, le japonais, le coréen, l’anglais, le français, l’allemand, l’espagnol, le portugais, le russe et d’autres langues majeures. Cette configuration multi-langues cibles permet de générer simultanément plusieurs versions linguistiques lors d’une seule tâche de traduction, améliorant considérablement l’efficacité de la traduction.
La configuration du modèle IA permet aux utilisateurs de choisir différents fournisseurs de services de traduction et modèles. L’extension utilise par défaut le modèle DeepSeek et prend également en charge d’autres services comme OpenAI, Grok, etc. Les utilisateurs peuvent configurer le point de terminaison API, la clé API, le nom du modèle, le nombre de requêtes par minute, le nombre maximal de tokens par segment, le délai d’attente, le paramètre de température, etc. Pour améliorer la sécurité, l’extension prend en charge la gestion des clés API via des variables d’environnement, évitant d’écrire des informations sensibles directement dans le fichier de configuration.
La configuration des règles de filtrage et de saut permet aux utilisateurs de contrôler précisément quels fichiers doivent être traduits et lesquels doivent être ignorés. L’élément de configuration ignore permet aux utilisateurs de spécifier les chemins et extensions de fichiers à ignorer complètement. Par défaut, le répertoire node_modules et les fichiers .log sont ignorés. L’élément de configuration copyOnly est utilisé pour spécifier les types de fichiers à copier sans les traduire. L’élément de configuration skipFrontMatterMarkers permet aux utilisateurs de sauter la traduction en fonction des métadonnées front matter des fichiers Markdown, par exemple pour ignorer les documents marqués comme brouillons.
La configuration avancée inclut la langue des prompts système, le mode débogage, la configuration des fichiers de journal et le mode de traduction différentielle, etc. La langue des prompts système contrôle la langue des prompts utilisés en interne par l’extension, par défaut en anglais. Lorsque le mode débogage est activé, toutes les requêtes et réponses API sont enregistrées, facilitant le dépannage. La configuration des fichiers de journal permet aux utilisateurs d’écrire les journaux de débogage dans un fichier, avec prise en charge de chemins personnalisés, de limites de taille de fichier et de limites de nombre de fichiers. Le mode de traduction différentielle est une fonctionnalité expérimentale qui, lorsqu’elle est activée, ne traduit que le contenu modifié, réduisant les appels API inutiles.
La configuration des prompts utilisateur est une fonctionnalité distinctive de l’extension. Les utilisateurs peuvent personnaliser une série de prompts qui sont envoyés au modèle IA après les prompts système. De cette manière, les utilisateurs peuvent guider le modèle de traduction pour qu’il suive un style de traduction spécifique, des normes terminologiques ou des exigences de format. Par exemple, les utilisateurs peuvent spécifier que lorsque le champ draft du front matter d’un fichier Markdown est défini sur true, aucune traduction n’est nécessaire, ou demander à remplacer ./readmes/ par ./ dans les chemins.
Voici un exemple de configuration typique :
{
"projectTranslator.specifiedFolders": [
{
"sourceFolder": {
"path": "${workspaceFolder}/content/en",
"lang": "en-us"
},
"targetFolders": [
{
"path": "${workspaceFolder}/content/zh-cn",
"lang": "zh-cn"
},
{
"path": "${workspaceFolder}/content/ja-jp",
"lang": "ja-jp"
}
]
}
],
"projectTranslator.currentVendor": "deepseek",
"projectTranslator.vendors": [
{
"name": "deepseek",
"apiEndpoint": "https://api.deepseek.com/v1",
"apiKeyEnvVarName": "DEEPSEEK_API_KEY",
"model": "deepseek-chat",
"rpm": 20,
"maxTokensPerSegment": 3000,
"timeout": 300,
"temperature": 0.1
}
],
"projectTranslator.ignore": {
"paths": ["**/node_modules/**", "**/.git/**"],
"extensions": [".log", ".min.js"]
},
"projectTranslator.userPrompts": [
"1. Should return no need translate if the markdown file has 'draft' set to 'true' in the front matter.",
"2. Maintain technical terminology consistency across all translated files."
]
}
实际应用案例
L’extension Project Translator a été validée et appliquée dans plusieurs projets réels. L’organisation Project Translation maintient plusieurs échantillons de projets de traduction, couvrant différents domaines tels que la visualisation d’algorithmes, la documentation des langages de programmation, les guides d’outils de développement, etc. Grâce à ces cas pratiques, on peut comprendre plus intuitivement les scénarios d’application et les effets de l’extension.
Le projet algorithm-visualizer est une plateforme interactive de visualisation d’algorithmes, le projet original ayant plus de 47 000 étoiles sur GitHub. Après utilisation de l’extension Project Translator, la documentation de ce projet a été traduite en plusieurs langues, aidant les développeurs du monde entier à mieux comprendre les principes des algorithmes et les effets de visualisation. Le projet gobyexample est une collection de tutoriels d’exemples en langage Go, avec plus de 7 500 étoiles. Après traduction via l’extension, les apprenants peuvent lire les exemples de code et les explications en Go dans leur langue maternelle.
Google Style Guide est un guide de style de projet open source originaire de Google, avec plus de 38 000 étoiles, couvrant les normes de codage de plusieurs langages de programmation. Grâce à l’extension Project Translator, ces guides de style ont été traduits en plusieurs langues, permettant aux développeurs du monde entier d’apprendre les meilleures pratiques de codage dans une langue familière. Le projet reference-en-us est une collection de fiches de référence rapide pour les développeurs, avec plus de 7 800 étoiles, fournissant des informations de référence rapide pour divers outils et langages tels que awk, bash, CSS, Golang, Python, Vim, etc.
Ces cas d’application réels démontrent l’applicabilité de l’extension Project Translator dans différents types de projets. Que ce soit pour la documentation technique, les tutoriels ou les manuels de référence, l’extension est capable de fournir des résultats de traduction de haute qualité. L’extension peut non seulement traiter le contenu en texte brut, mais aussi gérer correctement les fichiers Markdown contenant des blocs de code, des tableaux, des liens et d’autres formats complexes. Pour les projets contenant une grande quantité de terminologie technique, la capacité de traduction intelligente de l’extension maintient la cohérence et l’exactitude de la terminologie. La philosophie de conception de l’extension est hautement cohérente avec le principe d’ouverture de l’écosystème VS Code, fournissant aux développeurs un support de fonctionnalités personnalisées via le mécanisme d’extension.
总结
L’extension VSCode Project Translator offre une solution efficace et fiable pour la localisation multilingue de projets. Cette extension combine une technologie IA avancée et une conception d’ingénierie pratique, réalisant un flux de traduction automatisé tout en maintenant l’intégrité de la structure du code. L’extension prend en charge la traduction au niveau dossier et fichier, offre des options de configuration flexibles et dispose d’une interface utilisateur conviviale. Ces caractéristiques en font l’outil idéal pour les projets destinés à un public mondial.
L’avantage principal de l’extension réside dans sa capacité de traduction intelligente, qui identifie avec précision le contenu du code et de la documentation, ne traduisant que les parties nécessaires, évitant ainsi de compromettre l’exécutabilité du code. L’introduction de la fonctionnalité de traduction différentielle améliore encore l’efficacité de la traduction, ce qui est particulièrement précieux pour les mises à jour continues de grands projets. Le système de configuration de l’extension est bien conçu, offrant à la fois des options de personnalisation riches et une simplicité de configuration, permettant aux utilisateurs de différents niveaux techniques de prendre en main rapidement.
L’extension Project Translator a été validée dans plusieurs projets open source bien connus, notamment algorithm-visualizer, gobyexample, Google Style Guide, etc. Ces réussites démontrent la valeur pratique et la fiabilité de l’extension. Pour les projets nécessitant une prise en charge multilingue, en particulier les projets open source riches en documentation, l’extension Project Translator peut réduire considérablement la charge de travail de localisation et améliorer la qualité et la cohérence de la traduction.
La nature open source de l’extension lui confère également une bonne extensibilité et un potentiel de soutien communautaire. Les utilisateurs peuvent la personnaliser et l’étendre selon leurs besoins, et les contributeurs de la communauté peuvent participer à l’amélioration et au perfectionnement de l’extension. Avec les progrès continus de la technologie IA et la croissance soutenue des besoins multilingues, l’extension Project Translator devrait jouer un rôle encore plus important dans le domaine de la localisation de projets.