Project Translator VSCode extensie realiseert project meertalige lokalisatie
Categories:
Project Translator VSCode-extensie biedt ontwikkelaars een efficiënte oplossing voor projectmeertalige lokalisatie. Deze extensie maakt gebruik van AI-technologie om automatische vertaling te realiseren van individuele bestanden tot hele projectmappen, terwijl code-structuur en -formattering intact blijven, wat de hoeveelheid werk voor documentlokalisatie aanzienlijk vermindert. Voor open source-projecten of commerciële software die gericht zijn op een wereldwijd publiek, kan Project Translator de vertalefficiëntie en consistentie aanzienlijk verbeteren. In vergelijking met traditionele handmatige vertaling kunnen dergelijke geautomatiseerde hulpmiddelen grote hoeveelheden documentatie verwerken, vooral geschikt voor continu bijgewerkte projectdocumentatie.
Kernfunctionaliteiten
Project Translator-extensie beschikt over een reeks krachtige functionaliteiten die samen een complete oplossing voor projectmeertalige vertaling vormen. De extensie ondersteunt twee vertaalmodi: mapniveau en bestandsniveau, die flexibel kunnen worden gekozen op basis van projectbehoeften. In de mapvertalmodus kan de extensie recursief submappen verwerken, automatisch vertaalbare inhoud detecteren en de oorspronkelijke mapstructuur en hiërarchie behouden. Deze batchverwerking maakt vertaalwerk voor grote projecten haalbaar en efficiënt. De extensie is gratis te downloaden en te installeren via de VS Code Extensions Marketplace en de Open VSX Registry.
Intelligente vertaalfunctionaliteit is een van de kernvoordelen van de extensie. Tijdens het vertalen behoudt de extensie automatisch de integriteit van de codestructuur, vertaalt alleen codecommentaar en documentatie-inhoud, en laat de codelogica onaangetast. Voor gegevensstructuren zoals JSON en XML kan de extensie eveneens de oorspronkelijke structuur intact houden. Dit ontwerp zorgt ervoor dat vertaalde codebestanden nog steeds correct kunnen worden gecompileerd en uitgevoerd, en voorkomt problemen met code die door vertaling zouden kunnen ontstaan. De extensie levert ook professionele kwaliteit voor technische documentatie, met nauwkeurig begrip van technische termen en contextrelaties.
Configuratie-flexibiliteit is een ander belangrijk kenmerk van Project Translator. Gebruikers kunnen bronmappen en meerdere doel-mappen configureren, aangepaste bestandsvertaalintervallen ondersteunen, specifieke bestandstypes opgeven die moeten worden genegeerd, en meerdere AI-modelopties selecteren. Deze flexibiliteit stelt de extensie in staat zich aan te passen aan uiteenlopende projectstructuren en vertaalbehoeften. De extensie ondersteunt verschillende populaire AI-modellen, waaronder OpenAI, DeepSeek en Grok, zodat gebruikers op basis van budget en vertaalkwaliteit het passende model kunnen kiezen. Voor projecten die Hugo of andere statische sitegeneratoren gebruiken, is deze op mappen gebaseerde configuratie bijzonder gebruiksvriendelijk.
De gebruikersinterface van de extensie is ontworpen met de gebruiker in gedachten. Tijdens het vertalen wordt real-time voortgang getoond, zodat gebruikers op elk moment de vertaaltaken kunnen pauzeren, hervatten of stoppen. De extensie onderhoudt automatisch de doelmapstructuur en ondersteunt incrementele vertaling om herhaling te voorkomen. Deze controleerbaarheid is vooral belangrijk wanneer vertaaltaken langer duren. Bovendien biedt de extensie een experimentele differentiële vertaalfunctionaliteit die alleen gewijzigde inhoud vertaalt, waardoor API-gebruik wordt verminderd en versiegeschiedenis beter behouden blijft.
Vertaalwerkstroom
De vertaalwerkstroom van Project Translator is zorgvuldig ontworpen om het hele proces zowel efficiënt als betrouwbaar te maken. Nadat de gebruiker een vertaaltask activeert via het opdrachtpaneel, verwerkt de extensie de broninhoud stap voor stap volgens een vooraf gedefinieerd proces en genereert de taalversies.
flowchart TD
A[Gebruiker activeert vertaalopdracht] e1@--> B{Configuratie controleren}
B e2@-->|Niet geconfigureerd| C[Mapselectiedialoog tonen]
C e3@--> D[Gekozen bron- en doelpaden opslaan]
D e4@--> E[Bronbestanden en -mappen scannen]
B e5@-->|Geconfigureerd| E
E e6@--> F[Te vertalen bestanden identificeren]
F e7@--> G[Vertaaltaken op prioriteit sorteren]
G e8@--> H{Gebruiker kiest vertalmode}
H e9@-->|Standaardvertaling| I[Bronbestandsinhoud lezen]
H e10@-->|Differentiële vertaling| J[Bron- en doelbestandsinhoud lezen]
I e11@--> K[AI-model aanroepen voor vertaling]
J e12@--> K
K e13@--> L[Vertaalresultaat genereren]
L e14@--> M{Vertaalkwaliteit valideren}
M e15@-->|Validatie geslaagd| N[Naar doelbestand schrijven]
M e16@-->|Validatie mislukt| O[Terugvallen of opnieuw proberen]
N e17@--> P[Vertaalvoortgang bijwerken]
P e18@--> Q{Zijn er nog te vertalen bestanden?}
Q e19@-->|Ja| I
Q e20@-->|Nee| R[Vertaaltaak voltooien]
R e21@--> S[Vertaalsamenvatting tonen]
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;
De werkstroom begint wanneer de gebruiker via het opdrachtpaneel een vertaalopdracht selecteert. De extensie controleert eerst of bron- en doelpaden al geconfigureerd zijn. Als dit nog niet het geval is, wordt een mapselectiedialoog getoond waar de gebruiker paden kan opgeven. Nadat de configuratie voltooid is, scant de extensie alle bestanden en submappen in de bronmap en identificeert welke bestandstypes vertaald moeten worden. Op basis van geconfigureerde bestandsextensies en padregels filtert de extensie bestanden die niet verwerkt moeten worden.
Na identificatie sorteert de extensie de vertaaltaken op een bepaalde prioriteit, zodat belangrijke bestanden eerst worden vertaald. Gebruikers kunnen kiezen tussen standaardvertaling of differentiële vertaling. Standaardvertaling vertaalt de volledige bestandsinhoud, terwijl differentiële vertaling alleen gewijzigde gedeelten vertaalt, wat geschikter is voor updates van reeds vertaalde inhoud. Nadat de extensie de bronbestandsinhoud heeft gelezen, roept het het geconfigureerde AI-model aan voor vertaling.
Wanneer het AI-model het vertaalresultaat retourneert, valideert de extensie de vertaalkwaliteit. De validatie omvat het controleren van formatintegriteit, terminologieconsistentie en of de noodzakelijke codestructuur behouden is. Als de validatie geslaagd is, wordt het vertaalresultaat naar het doelbestand geschreven, met dezelfde directorystructuur als het bronbestand. Bij mislukte validatie probeert de extensie terug te vallen of opnieuw te vertalen. Na elke voltooide bestandsvertaling wordt de vertaalvoortgang bijgewerkt totdat alle te vertalen bestanden zijn verwerkt. Ten slotte toont de extensie een samenvatting van de vertaaltask, inclusief het aantal succesvol vertaalde bestanden, een lijst met mislukte bestanden en statistieken zoals vertaaltijd.
Configuratie uitgelegd
Het configuratiesysteem van Project Translator is zowel flexibel als intuïtief ontworpen. Gebruikers kunnen het gedrag van de extensie aanpassen via de VSCode-instellingeninterface of door direct het configuratiebestand te bewerken. De kernconfiguratie-items omvatten vertaalbron- en -doelpaden, AI-modelparameters, filterregels, enz.
Configuratie-items zijn hoofdzakelijk onderverdeeld in enkele categorieën. Map- en bestandsconfiguratie definiëren de invoer- en uitvoerpaden voor vertaling. Gebruikers kunnen meerdere bronmappen en de bijbehorende doel-mappen opgeven. Voor elke bronmap en doelmap moet een taalcodes worden gespecificeerd. De extensie ondersteunt 28 talen, waaronder Vereenvoudigd Chinees, Traditioneel Chinees, Japans, Koreaans, Engels, Frans, Duits, Spaans, Portugees, Russisch en andere belangrijke talen. Deze configuratie met meerdere doeltalen stelt een enkele vertaaltask in staat om meerdere taalversies tegelijk te genereren, wat de vertalefficiëntie aanzienlijk verhoogt.
AI-modelconfiguratie stelt gebruikers in staat verschillende vertaalserviceproviders en -modellen te kiezen. De extensie gebruikt standaard het DeepSeek-model, maar ondersteunt ook andere diensten zoals OpenAI en Grok. Gebruikers kunnen API-eindpunten, API-sleutels, modelnamen, aanvragen per minuut, maximale token-aantal per segment, time-outduur, temperatuurparameters, enz. configureren. Ter verbetering van de beveiliging ondersteunt de extensie het beheren van API-sleutels via omgevingsvariabelen, zodat gevoelige informatie niet direct in het configuratiebestand wordt opgeslagen.
Filter- en overslaanregels configuratie stelt gebruikers in staat precies te bepalen welke bestanden vertaald moeten worden en welke genegeerd moeten worden. De ignore-configuratie stelt gebruikers in staat paden en bestandsextensies op te geven die volledig genegeerd moeten worden; standaard worden de node_modules-map en .log-bestanden genegeerd. De copyOnly-configuratie wordt gebruikt om bestandstypes op te geven die gekopieerd maar niet vertaald moeten worden. De skipFrontMatterMarkers-configuratie stelt gebruikers in staat om op basis van front matter-metagegevens van Markdown-bestanden vertaling over te slaan, bijvoorbeeld door documenten die als concept zijn gemarkeerd over te slaan.
Geavanceerde configuratie omvat onder meer systeemprompttaal, debugmodus, logboekbestandsconfiguratie en differentiële vertaalmode. De systeemprompttaal bepaalt de taal van de prompts die intern door de extensie worden gebruikt; standaard is dit Engels. Wanneer debugmodus is ingeschakeld, worden alle API-verzoeken en -antwoorden gelogd voor probleemoplossing. Logboekbestandsconfiguratie stelt gebruikers in staat debuglogboeken naar een bestand te schrijven, met ondersteuning voor aangepaste paden, bestandsgroottebeperkingen en beperkingen op het aantal bestanden. Differentiële vertaalmode is een experimentele functionaliteit die, wanneer ingeschakeld, alleen gewijzigde inhoud vertaalt en onnodige API-aanroepen vermindert.
Gebruikerspromptconfiguratie is een onderscheidend kenmerk van de extensie. Gebruikers kunnen een reeks prompts aanpassen die na de systeemprompts worden verzonden naar het AI-model. Op deze manier kunnen gebruikers het vertalmodel instrueren specifieke vertaalstijlen, terminologienormen of formaateisen te volgen. Bijvoorbeeld, gebruikers kunnen opgeven dat Markdown-bestanden met een draft-veld ingesteld op true in de front matter niet vertaald moeten worden, of vereisen dat paden met ./readmes/ worden vervangen door ./.
Hier volgt een typische configuratievoorbeeld:
{
"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."
]
}
Praktijkvoorbeelden
Project Translator-extensie is gevalideerd en toegepast in meerdere praktijkprojecten. De Project Translation-organisatie onderhoudt meerdere vertaalprojectvoorbeelden die verschillende domeinen omvatten, zoals algoritmevisualisatie, programmeertaaldocumentatie en ontwikkelhulpmiddelengidsen. Via deze praktijkvoorbeelden kan de toepassingsgebieden en effecten van de extensie beter worden begrepen.
algorithm-visualizer is een interactief platform voor algoritmevisualisatie. Het originele project heeft meer dan 47.000 sterren op GitHub. Na gebruik van Project Translator-extensie is de documentatie van dit project vertaald in meerdere talen, waardoor wereldwijde ontwikkelaars de principes van algoritmen en visualisatie-effecten beter kunnen begrijpen. gobyexample is een verzameling van Go-tutorialvoorbeelden met meer dan 7.500 sterren. Na vertaling via de extensie kunnen leerlingen de Go-voorbeeldcode en -uitleg in hun moedertaal lezen.
Google Style Guide is een opensource-codestijlgids afkomstig van Google, met meer dan 38.000 sterren, die codestandaarden voor meerdere programmeertalen omvat. Via Project Translator-extensie zijn deze stijlgidsen vertaald in verschillende talen, zodat wereldwijde ontwikkelaars de beste coderingspraktijken in een vertrouwde taal kunnen leren. reference-en-us is een verzameling van snelle referentie-cheatsheets voor ontwikkelaars, met meer dan 7.800 sterren, die snelle referentie-informatie bieden voor tools en talen zoals awk, bash, CSS, Golang, Python, Vim, enz.
Deze praktijkvoorbeelden tonen de toepasbaarheid van Project Translator-extensie in verschillende soorten projecten. Of het nu gaat om technische documentatie, tutorials of naslagwerken, de extensie levert hoogwaardige vertaalresultaten. De extensie kan niet alleen pure tekst verwerken, maar ook complexe Markdown-bestanden met codeblokken, tabellen, links, enz. Voor projecten met veel technische termen zorgt de intelligente vertaalfunctionaliteit van de extensie voor terminologieconsistentie en -nauwkeurigheid. Het ontwerpfilosofie van de extensie is sterk in lijn met de open principes van de VS Code-ecosysteem en biedt via extensiemechanismen op maat gemaakte functionele ondersteuning voor ontwikkelaars.
Conclusie
Project Translator VSCode-extensie biedt een efficiënte en betrouwbare oplossing voor projectmeertalige lokalisatie. Deze extensie combineert geavanceerde AI-technologie met praktisch ingenieursontwerp en realiseert een geautomatiseerde vertaalwerkstroom terwijl de codestructuur intact blijft. Met ondersteuning voor vertaling op map- en bestandsniveau, flexibele configuratie-opties en een gebruiksvriendelijke interface, maakt deze extensie het tot een ideaal hulpmiddel voor projecten die wereldwijd gericht zijn.
De kernvoordelen van de extensie liggen in de intelligente vertaalmogelijkheden, die code en documentatie-inhoud nauwkeurig kunnen identificeren en alleen de te vertalen delen vertalen, waardoor de uitvoerbaarheid van de code niet in gevaar komt. De introductie van differentiële vertaling verhoogt de vertalefficiëntie verder, wat vooral waardevol is voor continue updates van grote projecten. Het configuratiesysteem van de extensie is goed ontworpen: het biedt uitgebreide aanpassingsopties terwijl het de configuratie eenvoudig houdt, zodat gebruikers met verschillende technische niveaus snel kunnen beginnen.
Project Translator-extensie is gevalideerd in meerdere bekende opensource-projecten, waaronder algorithm-visualizer, gobyexample, Google Style Guide, enz. Deze succesvolle voorbeelden bewijzen de praktische waarde en betrouwbaarheid van de extensie. Voor projecten die meertalige ondersteuning nodig hebben, vooral documentatie-intensieve opensource-projecten, kan Project Translator-extensie de lokalisatieworkload aanzienlijk verminderen en de vertaalkwaliteit en -consistentie verbeteren.
De opensource-natuur van de extensie geeft het ook goede uitbreidbaarheid en potentieel voor community-ondersteuning. Gebruikers kunnen de extensie aanpassen en uitbreiden op basis van hun eigen behoeften, en community-bijdragers kunnen deelnemen aan de verbetering en verdere ontwikkeling. Naarmate AI-technologie voortdurend vordert en de vraag naar meertaligheid blijft groeien, heeft Project Translator-extensie de potentie om een nog grotere rol te spelen in de projectlokalisatie.