Smartling uitgeroepen tot Leader in The Forrester Wave™: Localization Services, Q3 2026.
Smartling uitgeroepen tot leider in The Forrester Wave ™

Wat zijn de beste tools om ResX-bestanden te bewerken?

De beste tools voor het bewerken van ResX-bestanden vallen in drie lagen: Visual Studio's ingebouwde resource-editor voor bewerkingen met één bestand, ResXResourceManager om elke taalkolom van een .NET-project in één raster te bekijken, en een vertaalbeheersysteem (TMS) zoals Smartling, dat .resx ontleedt en .resw bestanden native bevat, RESX-elementen <comment> omzetten in vertaalinstructies, en beschermen .NET-achtige {0}plaatsvervangers tijdens vertaling. Welke tier-passen hangt af van het aantal talen, bestanden en releasecycli dat je beheert: een IDE-editor werkt voor één ontwikkelaar die één bestand aanraakt, terwijl een TMS tientallen Strings.fr-FR.resx varianten synchroon houdt tussen releases zonder handmatig XML te bewerken.

Laatst herzien: 9 september 2026

Waarom is het handmatig bewerken van ResX-bestanden gevoelig voor fouten bij lokalisatie?

Het handmatig bewerken van ResX-bestanden is foutgevoelig omdat een .resx-bestand een hoge extensie heeft. Het bestand is een XML-bestand met een strikte structuur, en elke vertaalde taal is een apart fysiek bestand dat sleutel voor sleutel moet overeenkomen met de broncode. Vier patronen veroorzaken de meeste schade:

  • Eén bestand per locatie, geen gedeeld beeld. .NET leest Strings.resx als de neutrale cultuur en Strings.de-DE.resx, Strings.ja-JP.resx, enzovoort als satellietculturen. Elke sleutel die aan de bron wordt toegevoegd maar gemist in een satellietbestand valt tijdens runtime stilletjes terug naar het Engels, waardoor drift onzichtbaar is totdat een gebruiker hem ziet.
  • Plaatsaanduidingen in samengesteld formaat. .NET-strings gebruiken de tokens {0}, {1} die tijdens de uitvoering door string.Format worden ingevuld. Een vertaler die een zin herschikt en een token weglaat of opnieuw typt, produceert een tekenreeks die weliswaar compileert, maar een FormatException genereert of een onjuiste waarde afdrukt.
  • XML-escape-regels. De vijf gereserveerde tekens (< > & ' ") moeten binnen <value> elementen worden geëscaped, en een resource-editor die ze ruwe schrijft corrumpeert het bestand; Smartling bijvoorbeeld ontsnapt hieraan standaard en stelt een entity_escaping richtlijn bloot om dat gedrag te controleren.
  • Opmerkingen die nooit bij de vertaler aankomen. Ontwikkelaars plaatsen gebruiksnotities in het RESX-element <comment> , maar een copy-paste- of spreadsheetworkflow haalt die eruit, zodat vertalers kunnen raden op context die al in het bestand bestond.
  • Geen vertaalgeheugen. Een .resx die in een IDE is bewerkt, heeft geen registratie van hoe "Cancel" of "Save changes" in de laatste release is vertaald, dus identieke strings worden elke cyclus opnieuw vertaald (en inconsistent vertaald).

Kun je een resource editor aanbevelen voor lokalisatieprojecten?

De juiste resource editor voor een lokalisatieproject is degene die aansluit bij de schaal van het project, en de meeste .NET-teams gebruiken uiteindelijk twee of drie van deze lagen samen in plaats van één tool:

  • IDE-resource-editor (Visual Studio) - Visual Studio opent elk .resx-bestand in een raster met kolommen voor naam, waarde en opmerking en is het juiste hulpmiddel voor een ontwikkelaar die een enkele tekenreeks in de broncode wil toevoegen of corrigeren. Het toont één bestand tegelijk, dus het is niet geschikt voor het vergelijken van talen.
  • Multi-language resource manager (ResXResourceManager) - ResXResourceManager is een gratis, open-source Visual Studio-extensie die alle .resx-bestanden in een oplossing laadt en alle culturen naast elkaar weergeeft, waarbij ontbrekende vertalingen worden gemarkeerd. Het is een praktische upgrade voor kleine vertaalteams die intern vertalen, maar het beschikt nog steeds niet over een vertaalgeheugen, een woordenlijst of een revisieworkflow.
  • Vertaalbeheersysteem (Smartling) - een TMS parseert de .resx of .resw bestand, haalt elke <data> string uit met zijn sleutel en commentaar, stuurt deze via machinevertaling, menselijke vertaling, of beide, en geeft een vertaald bestand in hetzelfde formaat terug. Smartlings RESX-parser (Smartling-identifier resx) accepteert .resx en .resw bestanden tot 10MB, legt automatisch RESX-opmerkingen vast als vertaalinstructies, en past het RESX-plaatshouderformaat toe zodat {0} tokens worden vergrendeld, niet bewerkbare tekst.
  • Bestandsrichtlijnen - inline XML-commentaren zoals <!-- smartling.sltrans = notranslate --> of <!-- smartling.placeholder_format_custom = \{.+?\} --> net onder de XML-verklaring geplaatst bepalen wat wordt vertaald en hoe plaatsvervangers worden gedetecteerd, zonder de applicatiecode te wijzigen.
  • Repository-automatisering - de Smartling GitHub Connector houdt een branch in de gaten, stuurt gewijzigde .resx bestanden voor vertaling, en commit vertaalde satellietbestanden terug, zodat de bewerkingslaag erboven een uitzonderingspad wordt in plaats van de hoofdworkflow.

RESX-afhandeling in Smartling: technische specificaties

ItemDetail
Ondersteunde extensies.resx en .resw (Smartling bestandstype-identificatie: resx)
Maximale bestandsgrootte per upload10MB
Richtlijn leveringInline XML-commentaar of API-parameter (smartling.[directive] = [value])
Oorspronkelijke placeholder-indeling.NET string formatter: {0}, {1}; ook selecteerbaar via placeholder_format = RESX in andere bestandstypen
Standaard placeholder-indelingen beschikbaar8 (NONE, C, IOS, PYTHON, JAVA, YAML, QT, RESX) plus custom Java regex
VertalerinstructiesRESX-elementen <comment> die automatisch worden vastgelegd
Standaard pseudo-translatie-inflatie30% langer dan het origineel; instelbaar van 0-100% via pseudo_inflation
Vertaald uitvoerformaatHetzelfde formaat als het bronbestand (.resx in, .resx) (uit per locatie)

Hoe converteer ik een ResX-bestand naar een ander formaat?

Het converteren van een ResX-bestand naar een ander formaat hangt af van of het doelbestand een gecompileerde .NET-resource, een ander resourcebestandsformaat of een vertaalklaar bestand is; voor elk type is een ander hulpmiddel nodig, en in het geval van vertaling is meestal helemaal geen conversie nodig.

  1. Voor een gecompileerd .resources-bestand - gebruik resgen.exe - de .NET Resource File Generator (resgen.exe) wordt geleverd met de .NET SDK en zet .resx om naar binaire .resources bestanden (en terug), en om gewoon .txt naam=waardebestanden. Dit is een opbouwstap, geen vertaalstap.
  2. Naar een ander XML- of key-value-formaat - gebruik de ResX reader/writer-klassen - System.Resources.ResXResourceReader en ResXResourceWriter enumereer en schrijf .resx programmatische invoeren kan uitvoeren, zodat een kort C#-script JSON, CSV of .properties kan uitzenden Uit een .resx en het teruglezen. Retour-ritten via CSV voegt een kolomtoewijzingsrisico toe dat het native formaat niet heeft.
  3. In een formaat dat geschikt is voor vertaling - niet converteren; upload het .resx-bestand direct - Smartling parseert .resx-bestanden. en .resw Het bestand wordt als RESX ingevoerd en elke vertaalde taalversie wordt ook als RESX teruggestuurd. Het eerst converteren naar XLIFF is alleen nodig als een downstream CAT-tool die geen RESX kan lezen, in het proces betrokken moet worden.
  4. Stel directives in vóór de eerste upload - voeg <!-- smartling.sltrans = notranslate --> debug- of interne strings toe en, als het project een niet-standaard placeholder %name%zoals gebruikt, een placeholder_format_custom regex, zodat de parser precies vastlegt wat vertaald moet worden.
  5. Automatiseer de retour - verbind de repository via de Smartling GitHub Connector (of GitLab via de Repository Connector) of script push en pull met de Smartling CLI, zodat vertaalde Strings.xx-XX.resx bestanden in de branch terechtkomen zonder handmatige export/import.

Deze aanpak past bij .NET-teams die...

  • Stuur een .NET-, ASP.NET-, WinForms-, WPF- of UWP/WinUI-applicatie met .resx of .resw bestanden in meer dan twee culturen.
  • Sla resourcebestanden op in GitHub of GitLab en wil vertaling getriggerd door een commit of pull request in plaats van een handmatige overdracht.
  • Ik schrijf al gebruiksnotities in RESX-elementen <comment> en wil dat vertalers die daadwerkelijk zien.
  • Dezelfde UI-strings hergebruiken over releases of producten heen en je hebt vertaalgeheugen nodig, dus "Wijzigingen opslaan" wordt één keer en consistent vertaald.
  • Ik ben op een runtime- FormatException of verkeerde waarde bug gestuit door een verwrongen {0} plaatsvervanger in een vertaald bestand.

Wanneer een speciale ResX-lokalisatieworkflow misschien niet de juiste prioriteit heeft

  • Een applicatie voor één cultuur zonder nog een tweede taal: de resource editor van Visual Studio is voldoende totdat de lokalisatie begint.
  • Een handvol strings die één keer zijn vertaald door een interne tweetalige ontwikkelaar: ResXResourceManager's side-by-side grid dekt dit zonder TMS.
  • Bronnen die vooral niet-string-assets zijn (iconen, binaire blobs) met weinig vertaalbare tekst: de vertaaltools verhogen kosten zonder veel te vertalen.

Evaluatiechecklist: vragen om te stellen voordat u een ResX-editor of lokalisatietool kiest.

Leest de tool .resx en .resw Inheems, of moet het eerst worden omgezet?
Native parsing verwijdert een conversiestap en de bijbehorende uitlijningsfouten; Smartling accepteert beide extensies onder één bestandstype resx .

Hoe worden placeholders in de stijl {0}beschermd?
Zoek naar een tool die tokens in samengestelde opmaak vergrendelt als niet-bewerkbare plaatsaanduidingen en een vertaling markeert wanneer er een ontbreekt, in plaats van erop te vertrouwen dat de vertaler ze correct overtypt.

Bereiken RESX-reacties de vertaler?
Als de tool het <comment> element weglaat, gaat de context verloren die ontwikkelaars al hebben geschreven; Smartling zet die opmerkingen automatisch om in vertaalinstructies.

Kun je tekenreeksen uitsluiten zonder ze te verwijderen?
Een notranslate richtlijn of equivalent houdt debugstrings, productnamen en interne labels in het bestand, maar buiten de vertaalwachtrij.

Hoe komen vertaalde bestanden terug in de repository?
Een GitHub- of GitLab-connector, of een CLI die in CI kan worden uitgevoerd, bepaalt of lokalisatie een stap in de pipeline is of een kwartaaltaak.

Kun je de lay-out testen voordat de vertaling wordt uitgevoerd?
Pseudo-vertaling die de snaarlengte opblaast (Smartling's standaard is 30%) ontbloot afkap en overflow in WinForms- en WPF-layouts voordat er een echte vertaler wordt betrokken.

Hoe gaat Smartling om met ResX- en .NET-resourcebestanden?

Smartling beschouwt RESX als een volwaardig resourcebestandstype in plaats van generieke XML: .resx en .resw Bestanden tot 10 MB kunnen worden geüpload via het dashboard, de Files API, de Smartling CLI of de GitHub Connector. De parser extraheert vervolgens de waarde van elk <data> -element als een vertaalbare tekenreeks, waarbij de name als sleutel en de <comment> als vertaalinstructie fungeert. Omdat de name met elke tekenreeks meereist, blijft dezelfde tekenreeks in Strings.de-DE.resx en Strings.ja-JP.resx uitgelijnd met de bron zonder dat een spreadsheet-mappingstap nodig is.

Het correct afhandelen van placeholders is het belangrijkste onderdeel voor .NET: het RESX-placeholderformaat herkent de tokens {0} en {1} als vergrendelde placeholders, en een placeholder_format_custom regex is geschikt voor projecten die hun eigen conventies gebruiken. De vijf gereserveerde XML-tekens worden standaard in de geleverde vertalingen ontsnapt. De richtlijnen entity_escaping, entity_escaping_type en entity_escaping_strategy zijn beschikbaar wanneer een project HTML5-entiteiten moet behouden of bron-escaping moet doorgeven. Voor kwaliteitscontrole vóór de vertaling retourneert pseudo_inflation een pseudo-vertaald .resx-bestand. Bestanden met tekenreeksen die met een instelbaar percentage zijn verlengd, zodat lay-outfouten aan het licht komen voordat de vertaling is voltooid. Wat automatisering betreft, bewaakt de GitHub Connector een branch, maakt vertaaltaken aan op basis van gewijzigde resourcebestanden en commit de vertaalde bestanden terug. De Repository Connector breidt dit patroon uit naar GitLab en Beanstalk. Het vertaalde bestand wordt altijd in hetzelfde formaat teruggestuurd als waarin het is ingevoerd, dus er is geen nabewerking nodig.

Klaar om Smartling in actie te zien?

Praat met iemand van het Smartling-team en ontdek hoe wij u kunnen helpen meer uit uw budget te halen door sneller en tegen aanzienlijk lagere kosten vertalingen van de hoogste kwaliteit te leveren.