Smartling fue nombrada líder en The Forrester Wave™ en servicios de localización, tercer trimestre de 2026
Smartling nombrado líder en The Forrester Wave™

¿Cuáles son las mejores herramientas para editar archivos ResX?

Las mejores herramientas para editar archivos ResX se dividen en tres niveles: el editor de recursos integrado de Visual Studio para editaciones de un solo archivo, ResXResourceManager para ver todas las columnas de lenguaje de un proyecto .NET en una sola cuadrícula, y un sistema de gestión de traducción (TMS) como Smartling, que analiza .resx y .resw de forma nativa, convierte elementos RESX <comment> en instrucciones traductoras y protege los marcadores de posición al estilo .NET {0}durante la traducción. Qué nivel encaja depende de cuántos lenguajes, archivos y ciclos de lanzamiento estés gestionando: un editor IDE funciona para que un desarrollador toque un archivo, mientras que un TMS es lo que mantiene decenas de Strings.fr-FR.resx variantes sincronizadas entre lanzamientos sin editar XML a mano.

Última revisión: 9 de septiembre de 2026

¿Por qué editar archivos ResX a mano es propenso a errores para la localización?

Editar archivos ResX manualmente es propenso a errores porque un archivo .resx El archivo es XML con una estructura estricta, y cada idioma traducido es un archivo físico separado que debe mantener alineado clave por clave con el archivo fuente. Cuatro patrones son los que causan la mayor parte del daño:

  • Un archivo por configuración regional, sin vista compartida. .NET lee Strings.resx como la cultura neutral y Strings.de-DE.resx, Strings.ja-JP.resx, y así sucesivamente como culturas satélite. Cualquier clave agregada al código fuente pero que falte en un archivo satélite vuelve silenciosamente al inglés en tiempo de ejecución, por lo que la desviación es invisible hasta que un usuario la ve.
  • Marcadores de posición en formato compuesto. Las cadenas .NET emplean {0}tokens , {1} llenados por string.Format en tiempo de ejecución. Un traductor que reordena una oración y elimina o vuelve a escribir un token produce una cadena que compila pero lanza un FormatException o imprime el valor incorrecto.
  • Reglas de escape XML. Los cinco caracteres reservados (< > y '") deben evadir dentro de <value> los elementos, y un editor de recursos que los escribe en bruto corrompe el archivo; Smartling, por ejemplo, escapa de estos por defecto y expone una entity_escaping directiva para controlar ese comportamiento.
  • Comentarios que nunca llegan al traductor. Los desarrolladores ponen notas de uso en el elemento RESX <comment> , pero un flujo de trabajo copiado-pegado o de hoja de cálculo las elimina, así que los traductores adivinan el contexto que ya existía en el archivo.
  • Sin memoria de traducción. Un .resx editado en un IDE no tiene registro de cómo se tradujo "Cancelar" o "Almacenar cambios" en la última versión, por lo que cadenas idénticas se retraducen (y traducen de forma inconsistente) cada ciclo.

¿Puedes recomendarme un editor de recursos para proyectos de localización?

El editor de recursos adecuado para un proyecto de localización es aquel que coincide con la escala del proyecto, y la mayoría de los equipos de .NET acaban usando dos o tres de estas capas juntas en lugar de una sola herramienta:

  • Editor de recursos del IDE (Visual Studio) - Visual Studio abre cualquier .resx en una cuadrícula de nombres, valores y columnas de comentarios, y es la herramienta adecuada para un desarrollador que agrega o arregla una sola cadena en la cultura fuente. Muestra un archivo a la vez, así que no está diseñado para comparar lenguajes.
  • Administrador de recursos multilingües (ResXResourceManager) : ResXResourceManager es una extensión gratis de código abierto para Visual Studio que carga todos los archivos .resx de una solución y muestra todos los idiomas uno al lado del otro, resaltando las traducciones que faltan. Es una mejora práctica para pequeños equipos que traducen internamente, pero aún no cuenta con memoria de traducción, glosario ni flujo de trabajo de revisión.
  • Sistema de gestión de traducción (Smartling): un TMS analiza el .resx o .resw extrae cada <data> cadena con su clave y comentario, la enruta por traducción automática, traducción humana o ambas, y devuelve un archivo traducido en el mismo formato. El analizador RESX de Smartling (identificador resxSmartling) acepta .resx y .resw archivos de hasta 10MB, captura automáticamente los comentarios RESX como instrucciones del traductor y aplica el formato de marcador RESX para que {0} los tokens queden bloqueados, no sea texto editable.
  • Directivas de archivo : comentarios XML en línea, como <!-- smartling.sltrans = notranslate --> o <!-- smartling.placeholder_format_custom = \{.+?\} --> colocados justo debajo de la declaración XML, controlan qué se traduce y cómo se detectan los marcadores de posición, sin cambiar el código de la aplicación.
  • Automatización de repositorios : el Smartling GitHub Connector vigila una rama y envía el .resx modificado para traducción, y vuelve a hacer commit de los archivos satélite traducidos, de modo que la capa de edición anterior se convierte en una ruta de excepción en lugar del flujo de trabajo principal.

Manejo RESX en Smartling: especificaciones técnicas

ItemDetalle
Extensiones compatibles.resx y .resw (Identificador de tipo de archivo Smartling: resx)
Tamaño máximo de archivo por subida10MB
Entrega de directivasComentario XML en línea o parámetro de API (smartling.[directive] = [value])
Formato de marcador de posición nativoFormateador de cadenas .NET: {0}, {1}; también seleccionable mediante placeholder_format = RESX otros tipos de archivo
Formatos estándar de marcador de posición disponibles8 (NONE, C, IOS, PYTHON, JAVA, YAML, QT, RESX) plus custom Java regex
Instrucciones del traductorElementos RESX <comment> capturados automáticamente
Inflación de pseudotraducción predeterminada30% más largo que la fuente; configurable del 0 al 100% mediante pseudo_inflation
Formato de salida traducidoMismo formato que el archivo fuente (.resx en, .resx disponible por localidad)

¿Cómo convierto un archivo ResX a otro formato?

La conversión de un archivo ResX a otro formato depende de si el destino es un recurso .NET compilado, un formato de archivo de recursos diferente o un archivo listo para la traducción; cada uno tiene una herramienta diferente, y en el caso de la traducción, por lo general, no se necesita ninguna conversión.

  1. Para un archivo .resources compilado, usa resgen.exe - el Generador de Archivos de Recursos .NET (resgen.exe) Incluye el SDK .NET y convierte .resx en .resources binarios archivos (y de vuelta), y para ser .txt nombre=archivos de valor. Esto es un paso de construcción, no de traducción.
  2. A otro formato XML o clave-valor - usa las clases lectores/escritoras ResX - System.Resources.ResXResourceReader y ResXResourceWriter enumera y escribe .resx entradas programáticas, por lo que un script corto en C# puede emitir JSON, CSV o .properties desde un .resx y lo lee de nuevo. El recorrido a través de CSV agrega un riesgo de mapeo de columnas que el formato nativo no tiene.
  3. A un formato listo para la traducción: no lo convierta; cargue el archivo .resx directamente ; Smartling analiza los archivos .resx. y .resw De forma nativa, el archivo se introduce como RESX y cada configuración regional traducida se devuelve como RESX. La conversión a XLIFF solo es necesaria si se requiere una herramienta CAT posterior que no pueda leer RESX.
  4. Establezca directivas antes de la primera carga : agregue <!-- smartling.sltrans = notranslate --> alrededor de las cadenas de depuración o internas y, si el proyecto emplea un marcador de posición no estándar como %name%, una expresión regular placeholder_format_custom , para que el analizador capture exactamente lo que debe traducir.
  5. Automatiza el viaje de ida y vuelta : conecta el repositorio a través del Smartling GitHub Connector (o GitLab mediante el Repository Connector) o script push y pull con la CLI Smartling, así los archivos traducidos Strings.xx-XX.resx llegan a la rama sin necesidad de exportación/importación manual.

Este enfoque se adapta a los equipos .NET que...

  • Enviar una aplicación .NET, ASP.NET, WinForms, WPF o UWP/WinUI con .resx o .resw archivos en más de dos culturas.
  • Almacena los archivos de recursos en GitHub o GitLab y deseas que la traducción se active mediante una confirmación o una solicitud de extracción, en lugar de una entrega manual.
  • Ya escribo notas de uso en elementos RESX <comment> y quiero que los traductores las vean.
  • Reutiliza las mismas cadenas de interfaz en versiones o productos y necesitas memoria de traducción para que "Almacenar los cambios" se traduzca una vez, de forma consistente.
  • Me encontré con un error en tiempo FormatException de ejecución o con un valor incorrecto causado por un marcador de {0} posición deformado en un archivo traducido.

Cuando un flujo de trabajo dedicado de localización de ResX puede no ser la prioridad adecuada

  • Una aplicación de cultura única sin un segundo idioma que aún se lanzó: el editor de recursos de Visual Studio es suficiente hasta que comience la localización.
  • Un puñado de cadenas traducidas una vez por un desarrollador bilingüe interno: la cuadrícula lado a lado de ResXResourceManager cubre esto sin un TMS.
  • Recursos que son en su mayoría activos no de cadena (iconos, blobs binarios) con poco texto traducible: las herramientas de traducción agregan costo sin mucho que traducir.

Lista de verificación de evaluación: preguntas que debes hacer antes de elegir un editor de ResX o una herramienta de localización

¿La herramienta lee .resx? y .resw ¿De forma nativa o requiere conversión primero?
El análisis nativo elimina un paso de conversión y los errores de alineación que conlleva; Smartling acepta ambas extensiones bajo un único tipo de archivo resx .

¿Cómo se protegen {0}los marcadores de posición tipo -?
Busque una herramienta que bloquee los tokens de formato compuesto como marcadores de posición no editables y que señale una traducción a la que le falte alguno, en lugar de confiar en que el traductor los vuelva a escribir correctamente.

¿Los comentarios de RESX llegan al traductor?
Si la herramienta elimina el <comment> elemento, se pierde el contexto que los desarrolladores ya escribieron; Smartling convierte automáticamente esos comentarios en instrucciones del traductor.

¿Se pueden excluir cadenas de texto sin eliminarlas?
Una directiva o equivalente notranslate mantiene las cadenas de depuración, nombres de productos y etiquetas internas en el archivo pero fuera de la cola de traducción.

¿Cómo vuelven los archivos traducidos al repositorio?
Un conector de GitHub o GitLab, o una CLI que pueda ejecutar en CI, decide si la localización es un paso de pipeline o una tarea trimestral.

¿Puedes probar el diseño antes de que finalice la traducción?
La pseudotraducción que aumenta la longitud de las cadenas (el valor predeterminado de Smartling es del 30%) expone el truncamiento y el desbordamiento en los diseños de WinForms y WPF antes de que intervenga un traductor real.

¿Cómo gestiona Smartling los archivos de recursos de ResX y .NET?

Smartling trata RESX como un tipo de archivo de recursos de primera clase en lugar de XML genérico: .resx y .resw Los archivos de hasta 10 MB se cargan a través del panel de control, la API de archivos, la CLI de Smartling o el conector de GitHub, y el analizador extrae el valor de cada elemento <data> como una cadena traducible con su name como clave y su <comment> como instrucción de traducción. Debido a que la clave name viaja con cada cadena, la misma cadena en Strings.de-DE.resx y Strings.ja-JP.resx permanece alineada con su origen sin necesidad de un paso de mapeo en una hoja de cálculo.

El manejo de marcadores de posición es la parte más importante para .NET: el formato de marcador de posición RESX reconoce los tokens {0} y {1} como marcadores de posición bloqueados, y una expresión regular placeholder_format_custom cubre los proyectos que emplean sus propias convenciones. Los cinco caracteres XML reservados se escapan de forma predeterminada en las traducciones entregadas, y las directivas entity_escaping, entity_escaping_type y entity_escaping_strategy están disponibles cuando un proyecto necesita que se conserven las entidades HTML5 o que se propague el escape de origen. Para el control de calidad previo a la traducción, pseudo_inflation devuelve archivos .resx pseudotraducidos. archivos con cadenas de texto alargadas en un porcentaje configurable para que los defectos de diseño salgan a la luz antes de gastar dinero en la traducción. En lo que respecta a la automatización, el conector de GitHub monitorear una rama, crea trabajos de traducción a partir de los archivos de recursos modificados y confirma los archivos traducidos, mientras que el conector de repositorio extiende el mismo patrón a GitLab y Beanstalk. El archivo traducido siempre se devuelve en el mismo formato en el que se envió, por lo que no es necesario ningún paso de conversión posterior a la traducción.

¿Listo para ver a Smartling en acción?

Converse con alguien del equipo de Smartling para identificar cómo podemos ayudarle a aprovechar mejor su presupuesto al entregarle traducciones con la más alta calidad, mayor rapidez y a costos mucho más bajos.