# gt: General Translation CLI tool: .xcstrings
URL: https://generaltranslation.com/es/docs/cli/reference/formats/xcstrings-files.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Traduce catálogos de cadenas de Apple con la CLI de General Translation. Referencia de API para el formato de archivo .xcstrings.

La CLI traduce archivos `.xcstrings`, que almacenan el contenido de origen y todas las configuraciones regionales en un único String Catalog. Esta compatibilidad requiere `gt` 2.21.0 o posterior.

## Overview [#overview]

| Tema                              | Description                                                                             |
| --------------------------------- | --------------------------------------------------------------------------------------- |
| [configuración](#config)          | Selecciona catálogos y mantén todas las configuraciones regionales en el mismo archivo.                    |
| [Cómo funciona](#how-it-works)    | Divide el contenido de origen para subirlo y combina las configuraciones regionales traducidas al descargarlos. |
| [Ediciones locales](#local-edits) | Sincroniza las ediciones sin tratar las demás configuraciones regionales del catálogo como cambios.        |
| [Errores](#errors)                | Identifica catálogos no válidos y ajustes de path no admitidos.                         |

## Configuración [#config]

Agrega una entrada `xcstrings` dentro de `files` con una lista `include` que apunte directamente a cada catálogo.

```json title="gt.config.json"
{
  "defaultLocale": "en",
  "locales": ["es", "ja"],
  "files": {
    "xcstrings": {
      "include": ["Resources/Localizable.xcstrings"]
    }
  }
}
```

Un String Catalog contiene todas las configuraciones regionales en un solo archivo y se actualiza en el mismo documento. Sus patrones de `include` no deben contener `[locale]`, y la configuración de `xcstrings` no acepta `transform`.

El `sourceLanguage` del catálogo debe resolverse a la misma configuración regional canónica que `defaultLocale`. Por ejemplo, un catálogo con `"sourceLanguage": "en"` puede usar `"defaultLocale": "en"`, pero no `"defaultLocale": "fr"`.

## Cómo funciona [#how-it-works]

Durante la subida, la CLI lee el catálogo y envía a la API un subconjunto que solo contiene el origen. Cada entrada conserva su localización en el idioma de origen cuando existe; las entradas que usan la propia clave como texto de origen permanecen en el subconjunto sin un campo `localizations`. Las configuraciones regionales de destino existentes no se suben como contenido de origen.

Durante la descarga, la CLI fusiona cada configuración regional de destino de vuelta en el catálogo en disco. Solo modifica la localización de esa configuración regional en las entradas coincidentes. Las demás configuraciones regionales, los comentarios, los estados de extracción, las sustituciones, las variaciones y los campos no reconocidos permanecen en el mismo documento.

Si la traducción descargada contiene una clave que ya no existe en el catálogo local, la CLI omite esa clave e imprime una advertencia. El archivo descargado se serializa como JSON con sangría de dos espacios y un salto de línea final.

## Ediciones locales [#local-edits]

El registro de descargas se almacena por configuración regional, aunque todas las configuraciones regionales compartan un mismo archivo. Esto evita que una configuración regional de destino sin cambios se envíe como edición local después de fusionar otra configuración regional en el catálogo.

Usa [`gt save-local`](/docs/cli/reference/commands/save-local), [`gt translate --save-local`](/docs/cli/reference/commands/translate) u [`options.saveLocal: true`](/docs/cli/reference/config#save-local) para enviar localizaciones de destino editadas. La sincronización de ediciones locales es opcional (opt-in).

El panel de control también abre las traducciones `.xcstrings` en la vista Raw editable. Una edición guardada solo actualiza la configuración regional de destino seleccionada en el catálogo.

## Errores [#errors]

* Un JSON no válido, un `sourceLanguage` ausente o vacío, o un campo `strings` que no sea un objeto hacen que la CLI omita el catálogo e informe del problema de validación.
* Un `sourceLanguage` que no coincida con `defaultLocale` detiene la ejecución antes de que se suban los archivos.
* Un patrón `include` que contenga `[locale]` o una configuración `xcstrings.transform` detiene la ejecución, ya que las configuraciones regionales traducidas deben fusionarse en el catálogo original.
* La clave reservada `__proto__` se rechaza en los mapas de cadenas y de localización. Las claves llamadas `constructor` o `prototype` sí son compatibles.

## Sitemap

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