---
title: "Cómo traducir los archivos de idioma de tu app con IA"
description: "JSON, YAML, XLIFF, PO, Android, iOS, Flutter y más. Cómo traducir los archivos de idioma de tu app con IA, desde la línea de comandos, con tu agente o desde la aplicación."
date: 2026-10-04
language: es
canonical: https://ai-glot.com/es/blog/how-to-translate-app-language-files-with-ai
source: AI Glot blog
---
**Los archivos de idioma de una app son una misma tarea con trece extensiones de archivo.** Tienes entre manos un archivo JSON, un `strings.xml`, un archivo PO o un catálogo de cadenas, y quieres tener esas mismas cadenas en cinco idiomas más sin que falle la compilación.

El formato cambia. La tarea no: conserva las claves y los marcadores de posición, traduce los valores y repite el proceso en cada lanzamiento.

## ¿Qué opción deberías usar?

| | Ideal para | Cuándo se queda corto |
|---|---|---|
| **AI Glot** | Cualquiera de los formatos siguientes, varios idiomas en una sola tarea, un glosario que hay que respetar y cada lanzamiento | No hace falta para diez cadenas |
| **Una plataforma de gestión de traducciones** (Crowdin, Lokalise, Phrase) | Un equipo con un flujo de trabajo continuo, revisores y conexión a un repositorio | Tienes que configurar un proyecto y conectar el repositorio antes de traducir la primera cadena |
| **DeepL** | [Archivos XLIFF de hasta 10 MB](https://developers.deepl.com/docs/best-practices/document-translations) | Acepta XLIFF, pero no los demás formatos de esta lista, y su glosario sustituye términos sin entender por qué deben mantenerse |
| **ChatGPT, Claude u otro asistente** | Un puñado de cadenas | Tienes que escribir la instrucción y añadir el glosario a cada conversación. Los archivos largos se generan token a token, despacio, y consumen tu límite de uso. Cada ejecución puede cambiar una clave o estropear un marcador de posición |
| **Un traductor autónomo o una agencia** | La página de la App Store y la introducción de tu app | Es lento, se cobra por palabra y, además, tienes que preparar los archivos |

**Paga a una persona para traducir las cinco cadenas que venden tu app**: la ficha de la tienda y la primera pantalla. Deja que un motor se encargue de los miles de cadenas que hay detrás.

## Elige tu archivo

Cada formato tiene su propia página, con una herramienta gratuita y todos los detalles. Esto es lo principal que debes saber sobre cada uno.

| Archivo | Dónde se encuentra | Qué debes saber |
|---|---|---|
| [**JSON**](/es/file-formats/json-translation) | `locales/en.json` | Las claves se devuelven en el mismo orden. Las instrucciones protegen marcadores de posición como `{count}` |
| [**ARB** (Flutter)](/es/file-formats/arb-translation) | `lib/l10n/app_en.arb` | Las entradas de metadatos `@` se copian. Cambia `@@locale` al idioma de destino |
| [**YAML**](/es/file-formats/yaml-translation) | `config/locales/en.yml` | Se reconocen los marcadores de posición `%{name}` al estilo de Rails. Los comentarios se eliminan al volver a guardar el archivo |
| [**TOML**](/es/file-formats/toml-translation) | `i18n/en.toml` (Hugo) | Solo cambian los valores de texto. Por lo general, los comentarios se conservan |
| [**XLIFF**](/es/file-formats/xliff-translation) | exportaciones de tus herramientas | Versiones 1.2 y 2.0. Las etiquetas en línea se reconstruyen a partir del texto original |
| [**PO y POT**](/es/file-formats/po-translation) | `locale/fr/LC_MESSAGES/app.po` | Las entradas en plural reciben las formas del idioma de destino y se reescribe la cabecera `Plural-Forms` |
| [**Qt Linguist**](/es/file-formats/qt-translation) | `app_fr.ts` | Los mensajes en plural (numerus) aún no se traducen. Después, ejecuta `lrelease` |
| [**Catálogo de cadenas**](/es/file-formats/xcstrings-translation) | `Localizable.xcstrings` | Todos los idiomas están en un solo archivo. Las sustituciones y las variantes de dispositivo no se modifican |
| [**iOS .strings**](/es/file-formats/ios-strings-translation) | `fr.lproj/Localizable.strings` | Se devuelve en UTF-8 y se conservan los bloques de comentarios. También se gestionan los plurales de `.stringsdict` |
| [**Android XML**](/es/file-formats/android-xml-translation) | `res/values-fr/strings.xml` | Se gestionan los plurales y las matrices de cadenas. Se respeta `translatable="false"` |
| [**RESX y RESW**](/es/file-formats/resx-translation) | `Resources.fr.resx` | Recibes un archivo por idioma. Los comentarios para desarrolladores se mantienen en inglés |
| [**Java .properties**](/es/file-formats/properties-translation) | `messages_fr.properties` | Solo UTF-8. Si un valor continúa en la línea siguiente, ponlo primero en una sola línea |

No todos los formatos organizan los idiomas de la misma manera. Un **catálogo de cadenas** reúne todos los idiomas en un archivo. La mayoría de los demás formatos, incluidos JSON, Android e iOS, guardan **un idioma por archivo**, así que cada idioma de destino tiene su propio archivo.

## Cómo queda un archivo traducido

Solo cambian los valores.

*Illustration: Un archivo de idioma antes y después. Las claves y los marcadores de posición se mantienen tal cual; solo se traducen los valores.*

## El recorrido de un archivo

*Illustration: Las cinco fases de un trabajo con archivos de idioma. Todo es gratis hasta la aprobación, así que corregir un plan incorrecto no cuesta nada.*

No se consume nada antes del cuarto paso, y corregir un plan equivocado no cuesta nada.

## Cómo hacerlo, paso a paso

**1. Prueba un archivo gratis.** Cada [página de formato](/es/file-formats) incluye una herramienta gratuita que no requiere crear una cuenta.

**2. Sube el archivo** en [la aplicación](https://app.ai-glot.com/signup) o envíalo desde la línea de comandos, como explicamos más abajo.

**3. Explica lo que necesitas en una frase.**

```
Translate this file into French.
Skip every key that starts with "internal.".
```

*Illustration: Describe el trabajo en inglés sencillo. AI Glot lo convierte en un plan que puedes revisar y corregir antes de ejecutarlo.*

La frase determina qué se traduce en todo el archivo. Las reglas sobre cómo debe expresarse el texto, como «mantén cada `{placeholder}` exactamente como está» o «usa un registro informal», van en el segundo cuadro al aprobar, porque se aplican a cada cadena tal como está escrita.

**4. Añade un glosario** con el nombre del producto, los nombres de las funciones y las palabras que tu aplicación siempre utiliza de la misma forma. [Cómo crear uno](/es/blog/build-translation-glossary-brand).

*Illustration: Un glosario define los términos que no deben variar y aplica la misma decisión a cada archivo.*

**5. Elige un nivel de calidad.**

*Illustration: Dos niveles de calidad, seleccionables por archivo. Lite cubre unas tres veces más palabras con los mismos créditos.*

**Lite** ofrece aproximadamente tres veces más palabras por crédito y es más rápido. Es ideal para la larga cola de ajustes y textos de ayuda. **Standard** es para las cadenas que el usuario lee primero. En Standard, un crédito equivale a una palabra.

**6. Aprueba y descarga.**

*Illustration: Recibes un único archivo en el mismo formato en que llegó.*

## Un archivo, muchos idiomas

*Illustration: Un archivo de origen se convierte en un archivo traducido por idioma, todos con las mismas claves y el mismo glosario.*

Los nombres de archivo son solo un ejemplo. Si quieres traducir una carpeta completa de archivos de idioma, comprímelos en un ZIP: puedes procesar hasta 200 archivos y 20 MB en un solo trabajo.

## Tres formas de usarlo

*Illustration: Tres formas de traducir tus archivos de idioma. Todas generan los mismos archivos traducidos.*

**Desde la línea de comandos** es la opción que suelen elegir los desarrolladores. Son los mismos cuatro pasos, en un script:

```bash
# 1. Create the job. Free. Returns a plan and an id.
id=$(aiglot batches create locales/en.json \
      --instruction "Translate into French. Skip every key that starts with internal." \
      --json | jq -r '.data.id')

# 2. Read the plan for free, then commit.
aiglot batches get "$id" --json | jq '.data.plan'
aiglot batches approve "$id" --quality lite \
  --instructions "Keep every {placeholder} exactly as written."

# 3. When the status is completed, bring the file back.
aiglot batches download "$id" --output locales/fr.json
```

**Con tu agente de IA:** conecta AI Glot como [servidor MCP](https://ai-glot.com/docs/mcp/overview). El agente puede leer tu repositorio, proponer los términos del glosario que encuentre, añadirlos a tu espacio de trabajo, ejecutar el trabajo y devolver los archivos a su sitio.

**En la aplicación:** sube el archivo, haz clic y descárgalo. Ideal para un trabajo puntual.

Si quieres integrar la API, consulta la [documentación de la API](https://ai-glot.com/docs/api/overview).

## Comprueba el resultado

Compila la aplicación en un idioma traducido y abre las tres pantallas con las cadenas más largas. Después, ejecuta el linter habitual o comprueba que no falte ninguna clave, porque una clave modificada aparecerá como una cadena ausente. El texto traducido suele ocupar más que el inglés, así que comprueba que los botones y las etiquetas no se desborden.

En [Precios](/es/pricing) puedes consultar cuánto cuesta un volumen mayor. Además, una [cuenta gratuita](https://app.ai-glot.com/signup) incluye créditos para procesar un archivo real.

---

*Los límites indicados aquí eran los vigentes cuando se redactó este texto: 200 archivos y 20 MB por ZIP. El límite de DeepL procede de su propia documentación. Los nombres de archivo y el recuento de cadenas de los diagramas son ejemplos. En tu plan puedes consultar las cifras reales de tus archivos, y hacerlo es gratis.*