Hvad er de bedste værktøjer til redigering af ResX-filer?
De bedste værktøjer til redigering af ResX-filer falder i tre niveauer: Visual Studios indbyggede ressourceeditor til redigering af enkeltfiler, ResXResourceManager til visning af alle sprogkolonner i et .NET-projekt i ét gitter og et oversættelsesstyringssystem (TMS) som Smartling, der analyserer .resx. og .resw filer native, konverterer RESX <comment> elementer til oversætterinstruktioner og beskytter .NET {0}-stil pladsholdere under oversættelse. Hvilket niveau der passer, afhænger af, hvor mange sprog, filer og udgivelsescyklusser du administrerer: en IDE-editor fungerer for én udvikler, der berører én fil, mens et TMS er det, der holder snesevis af Strings.fr-FR.resx varianter synkroniseret på tværs af udgivelser uden manuel redigering af XML.
Sidst gennemgået: 9. september 2026
Hvorfor er manuel redigering af ResX-filer tilbøjelig til fejl i forbindelse med lokalisering?
Manuel redigering af ResX-filer er fejlbehæftet, fordi en .resx Filen er XML med en streng struktur, og hvert oversat sprog er en separat fysisk fil, der skal forblive nøgle-for-nøgle justeret med kildekoden. Fire mønstre forårsager størstedelen af skaden:
- Én fil pr. lokalitet, ingen delt visning. .NET læser
Strings.resxsom den neutrale kultur ogStrings.de-DE.resx,Strings.ja-JP.resx, og så videre som satellitkulturer. Enhver nøgle, der tilføjes til kildekoden, men mangler i en satellitfil, vender lydløst tilbage til engelsk under kørsel, så drift er usynlig, indtil en bruger ser den. - Pladsholdere i sammensat format. .NET-strenge bruger
{0},{1}tokens udfyldt afstring.Formatunder kørsel. En oversætter, der omarrangerer en sætning og fjerner eller genskriver et token, producerer en streng, der kompilerer, men udløser enFormatExceptioneller udskriver den forkerte værdi. - XML-escape-regler. De fem reserverede tegn (< > & ' ") skal escapes i
<value>-elementer, og en ressourceeditor, der skriver dem rå, beskadiger filen; Smartling escaper for eksempel disse som standard og eksponerer etentity_escapingdirektiv for at kontrollere denne adfærd. - Kommentarer, der aldrig når oversætteren. Udviklere placerer brugsnoter i RESX
<comment>-elementet, men en kopier-indsæt- eller regnearksworkflow fjerner dem, så oversættere gætter på kontekst, der allerede eksisterede i filen. - Ingen oversættelseshukommelse. En .resx-fil, der er redigeret i et IDE, har ingen registrering af, hvordan "Annuller" eller "Gem ændringer" blev oversat i den sidste udgivelse, så identiske strenge bliver genoversat (og oversat inkonsistent) i hver cyklus.
Kan du anbefale en ressourceeditor til lokaliseringsprojekter?
Den rigtige ressourceeditor til et lokaliseringsprojekt er den, der matcher projektets skala, og de fleste .NET-teams ender med at bruge to eller tre af disse lag sammen i stedet for ét værktøj:
- IDE-ressourceeditor (Visual Studio) - Visual Studio åbner enhver .resx i et gitter af navn-, værdi- og kommentarkolonner og er det rigtige værktøj for en udvikler, der tilføjer eller retter en enkelt streng i kildekulturen. Den viser én fil ad gangen, så den er ikke bygget til at sammenligne sprog.
- Flersproget ressourcehåndtering (ResXResourceManager) - ResXResourceManager er en gratis Visual Studio-udvidelse med open source, der indlæser alle .resx-filer i en løsning og viser alle kulturer side om side med fremhævet manglende oversættelser. Det er den praktiske opgradering til små teams, der oversætter internt, men den har stadig ingen oversættelseshukommelse, ordliste eller gennemgangsarbejdsgang.
- Oversættelsesstyringssystem (Smartling) - et TMS analyserer .resx eller .resw filen, udtrækker hver
<data>-streng med dens nøgle og kommentar, sender den gennem maskinoversættelse, menneskelig oversættelse eller begge dele og returnerer en oversat fil i samme format. Smartlings RESX-parser (Smartling-identifikatorresx) accepterer .resx og .resw filer på op til 10 MB, indfanger RESX-kommentarer automatisk som oversætterinstruktioner og anvender RESX-pladsholderformatet, så{0}-tokens er låste og ikke redigerbar tekst. - Fildirektiver - indlejrede XML-kommentarer såsom
<!-- smartling.sltrans = notranslate -->eller<!-- smartling.placeholder_format_custom = \{.+?\} -->placeret lige under XML-deklarationen styrer, hvad der oversættes, og hvordan pladsholdere registreres, uden at ændre programkoden. - Automatisering af arkiver - Smartling GitHub Connector overvåger en branch, sender ændrede .resx filer til oversættelse og committer oversatte satellitfiler tilbage, så redigeringslaget ovenfor bliver en undtagelsessti i stedet for den primære arbejdsgang.
RESX-håndtering i Smartling: tekniske specifikationer
| Item | Detalje |
|---|---|
| Understøttede udvidelser | .resx og .resw (Smartling filtype-identifikator: resx) |
| Maksimal filstørrelse pr. upload | 10MB |
| Direktivlevering | Inline XML-kommentar eller API-parameter (smartling.[directive] = [value]) |
| Native pladsholderformat | .NET strengformatering: {0}, {1}; kan også vælges via placeholder_format = RESX i andre filtyper |
| Standard pladsholderformater tilgængelige | 8 (NONE, C, IOS, PYTHON, JAVA, YAML, QT, RESX) plus custom Java regex |
| Oversætterinstruktioner | RESX <comment> elementer registreres automatisk |
| Standard pseudo-oversættelsesinflation | 30% længere end kildekoden; konfigurerbar 0-100% via pseudo_inflation |
| Oversat outputformat | Samme format som kildefilen (.resx i, .resx ud pr. lokalitet) |
Hvordan konverterer jeg en ResX-fil til et andet format?
Konvertering af en ResX-fil til et andet format afhænger af, om målet er en kompileret .NET-ressource, et andet ressourcefilformat eller en oversættelsesklar fil; hver har et forskelligt værktøj, og oversættelsessagen kræver normalt slet ingen konvertering.
- Til en kompileret .resources-fil - brug resgen.exe - .NET Resource File Generator (
resgen.exe) leveres med .NET SDK og konverterer .resx til binære .resources filer (og tilbage), og til almindelig .txt navn=værdi filer. Dette er et trin i byggetiden, ikke et oversættelsestrin. - Til et andet XML- eller nøgleværdiformat - brug ResX-læser-/skriverklasserne -
System.Resources.ResXResourceReaderogResXResourceWritertil at opregne og skrive .resx. poster programmatisk, så et kort C#-script kan udsende JSON, CSV eller .properties fra en .resx og læs den tilbage. Rundgående gennemgang af CSV tilføjer en risiko for kolonnetilknytning, som det native format ikke har. - Til et oversætter-klart format - konverter ikke; upload .resx direkte - Smartling analyserer .resx og .resw native, så filen indtastes som RESX, og hver oversat lokalitet returneres som RESX. Det er kun nødvendigt at konvertere til XLIFF først, hvis et downstream CAT-værktøj, der ikke kan læse RESX, skal være i løkken.
- Angiv direktiver før den første upload - tilføj
<!-- smartling.sltrans = notranslate -->omkring debug- eller interne strenge, og hvis projektet bruger en ikke-standard pladsholder såsom%name%, enplaceholder_format_customregex, så parseren indfanger præcis, hvad der skal oversættes. - Automatiser rundturen - forbind repository'et via Smartling GitHub Connector (eller GitLab via Repository Connector) eller script
pushandpullmed Smartling CLI, så oversatteStrings.xx-XX.resxfiler lander i branchen uden manuel eksport/import.
Denne tilgang passer til .NET-teams, der...
- Send en .NET-, ASP.NET-, WinForms-, WPF- eller UWP/WinUI-applikation med .resx eller .resw filer i mere end to kulturer.
- Gem ressourcefiler i GitHub eller GitLab, og ønsk oversættelse udløst af en commit- eller pull-anmodning i stedet for en manuel overdragelse.
- Skriver allerede brugsnoter i RESX
<comment>-elementer og ønsker, at oversættere rent faktisk ser dem. - Genbrug de samme brugergrænsefladestrenge på tværs af udgivelser eller produkter, og brug for oversættelseshukommelse, så "Gem ændringer" oversættes én gang og konsekvent.
- Har fundet en runtime
FormatExceptioneller wrong-value-fejl forårsaget af en manglet{0}-pladsholder i en oversat fil.
Når en dedikeret ResX-lokaliseringsworkflow muligvis ikke er den rette prioritet
- En applikation med én kultur uden et andet sprog endnu: Visual Studios ressourceeditor er tilstrækkelig, indtil lokaliseringen starter.
- En håndfuld strenge oversat én gang af en intern tosproget udvikler: ResXResourceManagers side-om-side-gitter dækker dette uden et TMS.
- Ressourcer, der for det meste er ikke-strengaktiver (ikoner, binære blobs) med lidt oversættelig tekst: oversættelsesværktøjerne tilføjer omkostninger uden at der er meget at oversætte.
Evalueringstjekliste: spørgsmål du bør stille dig selv, før du vælger en ResX-editor eller et lokaliseringsværktøj
Læser værktøjet .resx og .resw native, eller kræver det konvertering først?
Native parsing fjerner et konverteringstrin og de justeringsfejl, der følger med det; Smartling accepterer begge filtypenavne under en enkelt resx -filtype.
Hvordan beskyttes pladsholdere i {0}-stil?
Led efter et værktøj, der låser tokens i sammensat format som ikke-redigerbare pladsholdere og markerer en oversættelse, der mangler en, i stedet for at stole på, at oversætteren genskriver dem korrekt.
Når RESX-kommentarer frem til oversætteren?
Hvis værktøjet fjerner <comment> -elementet, går kontekst, som udviklerne allerede har skrevet, tabt; Smartling omdanner automatisk disse kommentarer til oversætterinstruktioner.
Kan man udelade strenge uden at slette dem?
Et notranslate direktiv eller tilsvarende holder fejlfindingsstrenge, produktnavne og interne etiketter i filen, men ude af oversættelseskøen.
Hvordan kommer oversatte filer tilbage i arkivet?
En GitHub- eller GitLab-connector, eller en CLI, der kan køre i CI, afgør, om lokalisering er et pipeline-trin eller en kvartalsvis opgave.
Kan du teste layoutet, inden oversættelsen er færdig?
Pseudo-oversættelse, der oppuster strenglængden (Smartlings standard er 30%), eksponerer afkortning og overløb i WinForms- og WPF-layouts, før en rigtig oversætter er involveret.
Hvordan håndterer Smartling ResX- og .NET-ressourcefiler?
Smartling behandler RESX som en førsteklasses ressourcefiltype i stedet for generisk XML: .resx og .resw Filer på op til 10 MB uploades via dashboardet, Files API, Smartling CLI eller GitHub Connector, og parseren udtrækker hvert <data> -elements værdi som en oversættelig streng med dets name som nøgle og dets <comment> som en oversætterinstruktion. Fordi name følger med hver streng, forbliver den samme streng i Strings.de-DE.resx og Strings.ja-JP.resx justeret til sin kildekode uden et regnearksmeddlingstrin.
Håndtering af pladsholdere er den del, der betyder mest for .NET: RESX-pladsholderformatet genkender {0} og {1} -tokens som låste pladsholdere, og en placeholder_format_custom regex dækker projekter, der bruger deres egne konventioner. De fem reserverede XML-tegn er som standard escapet i leverede oversættelser, med direktiverne entity_escaping, entity_escaping_type og entity_escaping_strategy tilgængelige, når et projekt har brug for bevarede HTML5-enheder eller kildekode-escapet udbredt. Til QA før oversættelse returnerer pseudo_inflation pseudo-oversat .resx filer med strenge forlænget med en konfigurerbar procentdel, så layoutfejl dukker op, før oversættelsen er brugt op. På automatiseringssiden overvåger GitHub Connector en branch, opretter oversættelsesjob fra ændrede ressourcefiler og committer oversatte filer tilbage, og Repository Connector udvider det samme mønster til GitLab og Beanstalk. Den oversatte fil returneres altid i samme format, som den blev brugt i, så der er ikke behov for nogen efterfølgende konvertering.
Klar til at se Smartling i aktion?
Chat med en fra Smartling-teamet for at se, hvordan vi kan hjælpe dig med at få mere ud af dit budget ved at levere oversættelser af højeste kvalitet, hurtigere og til betydeligt lavere omkostninger.