# gt: General Translation CLI tool: .resx
URL: https://generaltranslation.com/es/docs/cli/reference/formats/resx-files.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Traduce archivos de recursos de .NET (.resx y .resw) con la CLI de General Translation. Referencia de la API para el formato de archivo RESX.

La CLI traduce los recursos de cadena de los archivos `.resx` de .NET y de los archivos `.resw`, que usan el mismo esquema. Las traducciones conservan los nombres de los recursos, los comentarios, los marcadores de posición de .NET y todos los recursos que no contienen texto. Se requiere `gt` 2.23.1 o una versión posterior.

## Descripción general [#overview]

| Tema                                      | Descripción                                                                                |
| ----------------------------------------- | ------------------------------------------------------------------------------------------ |
| [Configuración](#config)                  | Detecta los archivos fuente y nombra las traducciones según la convención que espera .NET. |
| [Comportamiento de traducción](#behavior) | Qué recursos se traducen y cuáles permanecen sin cambios.                                  |
| [Marcadores de posición](#placeholders)   | Mantiene intactos el formato compuesto de .NET y los marcadores de posición con nombre.    |
| [Recursos sin traducir](#untranslated)    | Recursos que la CLI no modifica.                                                           |
| [Codificación](#encoding)                 | Decodifica y restaura codificaciones de texto con marca de orden de bytes (BOM).           |
| [Validación](#validation)                 | Omite los archivos vacíos y rechaza los documentos que no son XML válido.                  |

## Configuración [#config]

Agrega una entrada `resx` en `files`. Un proyecto de .NET guarda los recursos del idioma predeterminado en un archivo como `Properties/Resources.resx`, y cada traducción, en un archivo ubicado junto a él cuyo nombre incluye la referencia cultural, como `Properties/Resources.es.resx`. El nombre del archivo fuente no incluye ninguna configuración regional, así que haz que `include` apunte a él y usa `transform` para asignar el nombre de la salida traducida. Usa `exclude` con el marcador de posición `[locales]` para que los archivos traducidos que están junto a él no se lean como archivos fuente:

```json title="gt.config.json"
{
  "defaultLocale": "en",
  "locales": ["es", "fr"],
  "files": {
    "resx": {
      "include": ["Properties/*.resx"],
      "exclude": ["Properties/*.[locales].resx"],
      "transform": "*.[locale].resx"
    }
  }
}
```

Con esta configuración, la CLI lee `Properties/Resources.resx` y escribe `Properties/Resources.es.resx` y `Properties/Resources.fr.resx`.

Los proyectos UWP y WinUI guardan los archivos `.resw` en un directorio por idioma, como `Strings/en-US/Resources.resw`. Para esta estructura, usa el marcador de posición `[locale]` y elimina `transform`:

```json title="gt.config.json"
{
  "defaultLocale": "en-US",
  "locales": ["es-ES", "fr-FR"],
  "files": {
    "resx": {
      "include": ["Strings/[locale]/Resources.resw"]
    }
  }
}
```

RESX solo admite `RESX` como formato de salida; no se puede convertir a otro formato de archivo con `transformationFormat`. Consulta la [referencia de configuración](/docs/cli/reference/config#files) para ver las claves de archivo compartidas.

## Comportamiento de la traducción [#behavior]

La CLI traduce cada entrada `<data>` que contiene una cadena. Un archivo traducido es una copia del archivo fuente en la que se reemplazan los valores de cadena, por lo que conserva:

* Los nombres de los recursos y el orden de las entradas
* Las entradas `<resheader>` y el bloque de esquema
* Los recursos que no contienen texto, como imágenes, iconos y tamaños
* Los comentarios y la sangría

Un `<comment>` en una entrada se envía al motor de traducción como contexto, así que puedes usarlo para desambiguar una cadena corta o con varios significados. Las instrucciones de localización de Microsoft incluidas en un comentario, como `{Locked}` y `{Locked="Power Display"}`, se transmiten como instrucciones que el motor debe seguir.

Un valor que contiene XML, como un comentario o etiquetas inline, se traduce como XML y debe seguir estando bien formado. Cuando un nombre aparece más de una vez, la CLI traduce la primera entrada, que es la que lee .NET, y deja las demás sin cambios.

Las traducciones existentes de las entradas que no han cambiado se pueden reutilizar, salvo que fuerces la retraducción.

## Marcadores de posición [#placeholders]

Las traducciones conservan cada marcador de posición de .NET tal como está escrito, incluidos su formato y su alineación:

| Marcador de posición            | Ejemplo                    |
| ------------------------------- | -------------------------- |
| Formato compuesto               | `{0}`, `{0:N2}`, `{1,-10}` |
| Marcador de posición con nombre | `{count}`, `{Name:0.00}`   |
| Llave literal                   | `{{` y `}}`                |

Un marcador de posición puede desplazarse dentro de la oración para adaptarse al orden de palabras del idioma de destino, pero debe aparecer el mismo número de veces que en el texto de origen. Si una traducción modifica u omite un marcador de posición, o rompe el XML de un valor que contiene XML, se excluye del archivo traducido y .NET recurre al idioma de origen para esa entrada. La siguiente ejecución vuelve a intentarlo.

Un único `&` delante de una letra indica una tecla de acceso del teclado, como en `&File`. Las traducciones conservan un solo `&` delante de una letra adecuada de la palabra traducida.

## Recursos sin traducir [#untranslated]

La CLI mantiene estos recursos en el archivo traducido sin enviarlos a traducir:

* Entradas con un `mimetype`, que contienen datos binarios, como imágenes
* Entradas con un `type` distinto de `System.String`, como `System.Drawing.Size`
* Entradas del diseñador de Windows Forms, cuyos nombres empiezan por `>>`
* Entradas con un valor vacío

## Codificación [#encoding]

La CLI lee como UTF-8 los archivos `.resx` sin marca. Si un archivo comienza con una marca de orden de bytes (BOM), admite UTF-8, UTF-16 little-endian o big-endian, y UTF-32 little-endian o big-endian. Visual Studio guarda los archivos `.resx` en UTF-8 con marca de orden de bytes. Las traducciones descargadas conservan la codificación y la marca de orden de bytes del archivo fuente.

Un archivo UTF-16 o UTF-32 sin marca se interpreta como UTF-8. Agrega la marca de orden de bytes correspondiente o guárdalo en UTF-8 antes de traducirlo.

## Validación [#validation]

La CLI omite los archivos `.resx` vacíos y los indica en el resumen del comando. La API rechaza cualquier archivo que no sea XML bien formado o cuyo elemento raíz no sea `<root>`.

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
