Un catálogo de cadenas de Xcode es un único archivo que contiene todos los idiomas de tu app. Para añadir alemán, japonés y portugués, completas ese archivo y Xcode se encarga del resto.
Esta guía trata sobre Localizable.xcstrings y su particularidad frente a un trabajo de traducción normal: los plurales. Para conocer otros formatos de app, consulta cómo traducir los archivos de idioma de tu app.
Qué es un catálogo de cadenas
Los catálogos de cadenas llegaron con Xcode 15. En la sesión de WWDC23 de Apple se presentan como una forma de gestionar todas las cadenas en un mismo sitio. Xcode detecta las cadenas localizables después de cada compilación y las añade al catálogo. Para agregar un idioma, basta con pulsar el botón del signo más.
Por dentro, es un archivo JSON que, de forma predeterminada, se llama Localizable.xcstrings. Cada clave contiene sus traducciones a todos los idiomas, además del comentario para los traductores.
¿Qué opción deberías usar?
| Ideal para | Limitaciones | |
|---|---|---|
| AI Glot | Traducir varios idiomas en un solo trabajo, gestionar los plurales para cada idioma y mantener un glosario | No hace falta para diez cadenas |
| Exportar localizaciones de Xcode | Crear un catálogo de localización por idioma y enviarlo a un traductor; después, importar las localizaciones | Prepara los archivos, pero no los traduce. Aún necesitas un traductor o una herramienta |
| Una plataforma de gestión de traducciones (Crowdin, Lokalise, Phrase) | Un equipo con revisores y conexión a un repositorio | Primero tienes que configurar un proyecto y conectar el repositorio |
| DeepL | Archivos XLIFF, que figuran en su lista | .xcstrings no figura en esa lista |
| ChatGPT, Claude u otro asistente | Un puñado de cadenas | Un catálogo es un JSON anidado con variantes plurales. Un archivo largo tarda en procesarse, consume tu límite de uso y puede acabar con una clave dañada o una forma plural que falte |
| Un profesional autónomo o una agencia | La página de tu app en App Store y el proceso de bienvenida | Es lento y se cobra por palabra |
Paga a una persona para traducir las cinco cadenas que venden tu app. Deja que un motor traduzca las miles de cadenas que hay detrás.
Por qué AI Glot encaja con un catálogo de cadenas
- Escribe en la clave y el idioma correctos. El catálogo sigue siendo un único archivo.
- Gestiona los plurales para cada idioma. El ruso necesita cuatro formas y el árabe, seis. Cada forma se escribe con su categoría correspondiente.
- Conserva los especificadores de formato.
%@,%dy%1$@se mantienen en la cadena traducida. - Mantiene los comentarios para traductores asociados a sus claves.
- Puedes traducir solo lo que falta. Las cadenas revisadas se devuelven sin cambios.
- Un plan antes de gastar.
El recorrido de un archivo
- 1SubirLocalizable.xcstrings tal cualHasta 8 MB
- 2Dinos qué necesitasIdiomas que añadirGratis
- 3Leer el planClaves que faltan por idioma, costeGratis
- 4AprobarEl único paso que genera gastoConsume créditos
- 5DescargarEl mismo catálogo, completoSustituye el archivo
Por qué los plurales son clave
En inglés hay dos formas plurales. Otros idiomas tienen más, y un mensaje como «3 fotos» necesita la forma adecuada en cada idioma.
- uno
- otro
- uno
- pocos
- muchos
- otro
- cero
- uno
- dos
- pocos
- muchos
- otro
Si el idioma de destino utiliza una categoría que no existe en el idioma de origen, se añade. Así, un catálogo en ruso incorpora las formas few y many. Si no se hace, la aplicación muestra una forma incorrecta para algunas cantidades.
Qué debes comprobar después
Sustituciones y variantes por dispositivo. Aún no están traducidas y se dejan tal cual. El plan indica cuántas hay.
Lista de idiomas. Abre el catálogo en Xcode y comprueba que aparecen todos los idiomas nuevos y que su progreso figura como completo.
Longitud. Ejecuta la aplicación en uno de los idiomas nuevos y abre las pantallas con las cadenas más largas para comprobar que el texto no se sale de los botones.
Cómo hacerlo, paso a paso
1. Prueba un archivo gratis. El traductor de String Catalog no requiere cuenta y admite archivos de hasta 2 MB y 5,000 palabras.
2. Sube Localizable.xcstrings en la aplicación. Lo encontrarás en la carpeta del proyecto, dentro de la carpeta Resources si aceptaste la ubicación predeterminada de Apple.
3. Explica lo que necesitas en una frase.
Add German, Japanese and Portuguese.
Translate only the keys that have no translation in each language yet.
La frase determina qué se traduce en todo el catálogo. Las reglas de redacción, como «mantén exactamente todos los especificadores de formato» o «usa un registro informal», van en la segunda casilla durante la aprobación, porque se aplican a cada cadena tal como está escrita.
4. Añade un glosario con el nombre de la aplicación, los nombres de las funciones y las palabras que siempre utilizas de la misma forma. Cómo crear uno.
5. Lee el plan y elige un nivel de calidad.
Lite ofrece aproximadamente tres veces más palabras por crédito y es más rápido: ideal para una nueva localización que vayas a revisar. Standard es para las cadenas de la página de tu App Store. Un crédito equivale a una palabra en Standard.
6. Aprueba y descarga, y después sustituye el catálogo de tu proyecto.
Un catálogo, varios idiomas
Las cifras son un ejemplo. A diferencia de la mayoría de los formatos, un String Catalog contiene todos los idiomas, así que recibes un único archivo, no uno por idioma.
Tres formas de usarlo
Desde la línea de comandos vuelve a ejecutarse con cada versión, cuando Xcode haya añadido cadenas nuevas al catálogo:
id=$(aiglot batches create Localizable.xcstrings \
--instruction "Add German, Japanese and Portuguese. Translate only the keys with no translation yet." \
--json | jq -r '.data.id')
aiglot batches get "$id" --json | jq '.data.plan'
aiglot batches approve "$id" --quality lite \
--instructions "Keep every format specifier exactly as written."
aiglot batches download "$id" --output Localizable.xcstrings
Con tu agente de IA: conecta AI Glot como servidor MCP. El agente puede leer tu proyecto, proponer términos para el glosario, ejecutar el trabajo y devolver el catálogo a su ubicación.
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.
En Precios puedes consultar cuánto cuesta un volumen mayor. Además, una cuenta gratuita incluye créditos para procesar un archivo real.
Los límites indicados aquí son los vigentes cuando se escribió este texto: 8 MB por String Catalog, y 2 MB y 5,000 palabras en la herramienta gratuita. La descripción de String Catalogs y Export Localizations procede de la sesión WWDC23 de Apple. La lista de DeepL procede de su propia documentación. Los nombres de archivo y el número de cadenas de los diagramas son ejemplos. Tu plan muestra las cifras reales de tu archivo y puedes consultarlo gratis.
