Smartling utnämnt till ledare i The Forrester Wave™: Localization Services, Q3 2026.
Smartling utsedd till ledare i The Forrester Wave™

Vilka är de bästa verktygen för redigering av ResX-filer?

De bästa verktygen för redigering av ResX-filer delas in i tre nivåer: Visual Studios inbyggda resurseditor för redigering av enstaka filer, ResxResourceManager för visning av varje språkkolumn i ett .NET-projekt i ett rutnät och ett översättningshanteringssystem (TMS) som Smartling, som analyserar.resx och .resw filer som är inbyggt, konverterar RESX <comment> element till översättarinstruktioner och skyddar platshållare i formatet .NET{0}under översättning. Vilken nivå som passar beror på hur många språk, filer och utgiv ningscykler du hanterar: en IDE-redigerare fungerar för en utvecklare som rör en fil, medan en TMS är det som håller dussintals strängar.fr-FR.resx- varianter synkroniserade över versioner utan att manuellt redigera XML.

Senast granskad: 9 september 2026

Varför är redigering av ResX-filer för hand felbenägen för lokalisering?

Att redigera ResX-filer för hand är felbenäget eftersom en.resx filen är XML med strikt struktur, och varje översatt språk är en separat fysisk fil som måste förbli nyckel för nyckel i linje med källan. Fyra mönster orsakar det mesta av skadan:

  • En fil per språk, ingen delad vy. .NET läser Strings.resx som den neutrala kulturen och Strings.de-de.resx, Strängar.ja-jp.resx, och så vidare som satellitkulturer. Varje nyckel som läggs till källan men saknas i en satellitfil faller tyst tillbaka till engelska vid körning, så drift är osynlig tills en användare ser den.
  • Platshållare i kompositformat. .NET-strängar använder {0}, {1} tokens fyllda med String.format vid körning. En översättare som ordnar om en mening och släpper eller skriver om en token producerar en sträng som kompilerar men kastar en FormatException eller skriver ut fel värde.
  • XML-undvikande regler. De fem reserverade tecknen (< > & '") måste undvikas inuti <value> element, och en resurseditor som skriver dem råa skadar filen. Smartling undgår till exempel dessa som standard och exponerar ett entity _escaping-direktiv för att kontrollera det beteendet.
  • Kommentarer som aldrig når översättaren. Utvecklare lägger användaranteckningar i elementet RESX <comment>, men ett arbetsflöde för kopiering och klistra in eller kalkylark tar bort dem, så översättare gissar på sammanhang som redan fanns i filen.
  • Inget översättningsminne. En .resx redigerad i en IDE har inget register över hur " Cancel " eller " Save changes " översattes i den senaste versionen, så identiska strängar översätts (och översätts inkonsekvent) varje cykel.

Kan du rekommendera en resursredigerare för lokaliseringsprojekt?

Rätt resursredigerare för ett lokaliseringsprojekt är den som matchar projektets skala, och de flesta .NET-team använder två eller tre av dessa lager tillsammans i stället för ett verktyg:

  • IDE-resursredigerare (Visual Studio) - Visual Studio öppnar val.resx i ett rutnät med namn, värde och kommentarkolumner och är rätt verktyg för en utvecklare som lägger till eller fixar en enda sträng i källkulturen. Den visar en fil i taget, så den är inte byggd för att jämföra språk.
  • Flerspråkig resurshanterare (ResxResourceManager) - ResxResourceManager är ett gratis Visual Studio-tillägg med öppen källkod som laddar varten.resx i en lösning och visar alla kulturer sida vid sida och markerar saknade översättningar. Det är den praktiska uppgraderingen för små team som översätter internt, men det har fortfarande inget översättningsminne, ordlista eller granskningsarbetsflöde.
  • Översättningshanteringssystem (Smartling) - en TMS analyserar .resx eller.resw fil, extraherar varje <data> -sträng med sin nyckel och kommentar, dirigerar den genom maskinöversättning, mänsklig översättning eller båda, och returnerar en översatt fil i samma format. Smartlings RESX-parser (Smartling-identifierare resx) accepterar.resx och .resw filer upp till 10 MB, fångar RESX-kommentarer automatiskt som översättarinstruktioner och tillämpar RESX-platshållarformatet så att {0} -tokens är låsta, inte redigerbar text.
  • Fildirektiv - inline XML-kommentarer som <!-- <! -- smartling.sltrans = notranslate --> eller <!-- smartling.placeholder_format_custom =\ {.+? \} --> placerad strax under XML-deklarationen styr vad som översätts och hur platshållare upptäcks, utan att programkoden ändras.
  • Förvarautomatisering - Smartling GitHub Connector tittar på en gren, skickar ändra.resx filer för översättning och återför översatta satellitfiler, så redigeringslagret ovan blir en undantagsväg snarare än huvudarbetsflödet.

RESX-hantering i Smartling: tekniska specifikationer

ItemDetalj
Tillägg som stöds.resx och .resw (Smartling-filtypsidentifierare: resx)
Maximal filstorlek per uppladdning10MB
DirektivleveransInbyggd XML-kommentar eller API-parameter (smartling. [direktiv] = [värde])
Inbyggt platshållarformat.NET-strängformaterare: {0}, {1}; kan även väljas via placeholder_ format = RESX i andra filtyper
Standardplatshållarformat tillgängliga8 (NONE, C, IOS, PYTHON, JAVA, YAML, QT, RESX) plus custom Java regex
Instruktioner för översättareRESX <comment> element fångas automatiskt
Standard pseudoöversättningsinflation30% längre än källa; konfigurerbar 0-100% via pseudo_inflation
Översatt utdataformatSamma format som källfilen (.resx i, .resx ut per land)

Hur konverterar jag en ResX-fil till ett annat format?

Att konvertera en ResX-fil till ett annat format beror på om målet är en kompilerad.NET-resurs, ett annat resursfilformat eller en översättningsklar fil. Var och en har ett annat verktyg, och översättningsfallet behöver vanligtvis ingen konvertering alls.

  1. Till en kompilerad .resources fil - använd resgen.exe -.NET Resource File Generator (resgen.exe) levereras med.NET SDK och omvandlar.resx till binär.resources filer (och tillbaka) och till vanlig .txt namn=värdefiler. Detta är ett byggtidssteg, inte ett översättningssteg.
  2. Till ett annat XML- eller nyckelvärdeformat - använd ResX läsar/skrivarklasserna - System.resources. ResxResourceReader och ResXResourceWriter räkna upp och skriv.resx poster programmatiskt, så att ett kort C# -skript kan avge JSON, CSV eller .properties från en.resx och läs tillbaka den. Rundtrippning genom CSV lägger till en kolonnmappningsrisk som det ursprungliga formatet inte har.
  3. Till ett översättarklart format - konvertera inte; ladda upp .resx direkt - Smartling analyserar .resx och .resw nativt, så filen går in som RESX och varje översatt språk kommer tillbaka som RESX. Konvertering till XLIFF först är endast nödvändig om ett nedströms CAT-verktyg som inte kan läsa RESX måste vara i slingan.
  4. Ställ in direktiv före den första uppladdningen - lägg till <!-- smartling.sltrans = notranslate --> kring felsökning eller interna strängar och, om projektet använder en platshållare som inte är standard, t.ex. %name%, en platshållare_format_custom regex, så tolkaren fångar exakt vad som ska översättas.
  5. Automatisera rundturen - anslut förvaret via Smartling GitHub Connector (eller GitLab via Repository Connector) eller skript push and pull med Smartling CLI, så översatta strängar .xx-xx.resx-filer landar i grenen utan manuell export/import.

Detta tillvägagångssätt passar .NET-team som...

  • Skicka ett .NET-, ASP.NET-, WinForms-, WPF- eller UWP/WinUI-program med.resx eller.resw filer i mer än två kulturer.
  • Lagra resursfiler i GitHub eller GitLab och vill att översättning utlöses av en commit- eller pull-begäran snarare än en manuell överlämning.
  • Skriv redan användningsanteckningar i RESX <comment> element och vill att översättare faktiskt ska se dem.
  • Återanvänd samma gränssnittssträngar i olika versioner eller produkter och behöver översättningsminne så " Spara ändringar " översätts en gång, konsekvent.
  • Har träffat ett körtidsfel FormatExcep tion eller fel värde orsakat av en felaktig {0} platshållare i en översatt fil.

När ett dedikerat ResX-lokaliseringsarbetsflöde kanske inte är rätt prioritet

  • Ett program för en kultur utan något andraspråk levererat ännu: Resursredigeraren i Visual Studio räcker tills lokaliseringen startar.
  • En handfull strängar översatta en gång av en intern tvåspråkig utvecklare: ResxResourceManagers sida-by-side-rutnät täcker detta utan TMS.
  • Resurser som mestadels är icke-strängade tillgångar (ikoner, binära blobs) med lite översättningsbar text: översättningsverktyget lägger till kostnader utan mycket att översätta.

Utvärderingschecklista: frågor att ställa innan du väljer en ResX-redigerare eller lokaliseringsverktyg

Läser verktyget .resx och .resw inbyggt, eller kräver det konvertering först?
Inbyggd parsing tar bort ett konverteringssteg och justeringsfel som följer med det; Smartling accepterar båda tilläggen under en enda resx-filtyp.

Hur skyddas platshållare i {0}-stil?
Leta efter ett verktyg som låser symboler i sammansatt format som icke-redigerbara platshållare och flaggar en översättning som saknar en, i stället för att lita på att översättaren skriver om dem korrekt.

Kommer RESX-kommentarer till översättaren?
Om verktyget släpper elementet <comment> förloras kontext som utvecklarna redan har skrivit. Smartling förvandlar dessa kommentarer till översättarinstruktioner automatiskt.

Kan du utesluta strängar utan att ta bort dem?
Ett notranslat e-direktiv eller motsvarande håller felsökningssträngar, produktnamn och interna etiketter i filen men utanför översättningskön.

Hur kommer översatta filer tillbaka till databasen?
En GitHub- eller GitLab-anslutning, eller en CLI som kan köras i CI, avgör om lokalisering är ett rörledningssteg eller en kvartalsvis syssla.

Kan du testa layouten innan översättningen är klar?
Pseudoöversättning som blåser upp stränglängden (Smartlings standard är 30%) exponerar trunkering och överflöd i WinForms- och WPF-layouter innan en riktig översättare är inblandad.

Hur hanterar Smartling ResX- och .NET resursfiler?

Smartling behandlar RESX som en förstklassig resurs-filtyp snarare än generisk XML: .resx och .resw filer upp till 10 MB laddas upp via instrumentpanelen, Files API, Smartling CLI eller GitHub Connector, och parsern extraherar varje <data> -elementets värde som en översättningsbar sträng med dess namn som nyckel och dess <comment> < kommentar > som en översättningsinstruktion. Eftersom namnnyckeln färdas med varje sträng, förblir samma sträng i Str ings.de-DE.resx och Strings.ja-JP.resx inriktad mot källan utan ett kalkylbladsm appningssteg.

Platshållarhantering är den del som är viktigast för .NET: RESX-platshållarformatet känner igen {0} och {1} tokens som låsta platshållare, och en platshållar_format_custom regex täcker projekt som använder sina egna konventioner. De fem reserverade XML-tecknen är undangömda i levererade översättningar som standard, med direktiven entity_escaping, entity_escap ing_ type och entity_escaping_strategy tillgängliga när ett projekt behöver HTML5-entit eter bevarade eller source-escaping spri ds. För QA före översättning returnerar pseudo_inflation pseudo-översatt.resx filer med strängar förlängda med en konfigurerbar procentandel så att layoutfel dyker upp före översättningsutgifter. På automationssidan övervakar GitHub Connector en gren, skapar översättningsjobb från ändrade resursfiler och återför översatta filer, och Repository Connector utökar samma mönster till GitLab och Beanstalk. Den översatta filen kommer alltid tillbaka i samma format som den gick i, så inget konverteringssteg efter översättning behövs.

Är du redo att se Smartling i aktion?

Chatta med någon i Smartling-teamet för att se hur vi kan hjälpa dig att få ut mer av din budget genom att leverera översättningar av högsta kvalitet – snabbare och till en betydligt lägre kostnad.