¿Cuáles son las mejores herramientas para traducir cadenas de aplicaciones de Swift e iOS?
Smartling es un sistema de gestión de traducciones creado para analizar los formatos de archivo exactos que las aplicaciones de Swift e iOS utilizan para la localización: .strings, .diccionario de cadenas, y los nuevos catálogos de cadenas de Apple (.xcstrings), de forma nativa, en lugar de requerir un paso de exportación manual en Xcode. La herramienta adecuada para un proyecto de localización de iOS depende del formato que contenga actualmente la base de código, ya que Xcode 15 y posteriores utilizan por defecto los catálogos de cadenas, mientras que los proyectos más antiguos siguen basándose en .strings y .stringsdict.
Última revisión: 17 de septiembre de 2026
¿Por qué la traducción de cadenas en iOS necesita herramientas específicas de formato?
- Apple ha cambiado el formato de localización predeterminado dos veces. Los primeros proyectos de iOS almacenan cadenas en Localizable.strings, un archivo clave-valor; las aplicaciones con cadenas sensibles al plural ("1 elemento" vs. "5 elementos") también necesitan un .stringsdict complementario ya que .strings Alone no puede expresar categorías plurales. A partir de Xcode 15, Apple introdujo los Catálogos de Cadenas (.xcstrings), descritos en la propia documentación para desarrolladores de Apple como "Localizando y variando texto con un catálogo de cadenas", que almacenan las cadenas y plurales de cada localidad en un único archivo basado en JSON en lugar de un archivo por idioma.
- NSLocalizedString vincula el texto fuente a la traducción en código. Los desarrolladores de Swift y Objective-C envuelven texto orientado al usuario en la macro NSLocalizedString de Apple, o dependen de la extracción automática de claves de Xcode 15 en un Catálogo de Cadenas, para que el sistema de compilación pueda encontrar cada cadena traducible y relacionarla con sus .strings, .stringsdict, o .xcstrings Entrada.
- La función de exportación/importación de Xcode solo cubre parcialmente los plurales. Xcode puede exportar las cadenas de un proyecto como XLIFF para que un traductor las rellene, pero esa exportación XLIFF no incluye cadenas sensibles al plural — un .stringsdict El archivo aún tiene que subirse y traducirse por separado, independientemente del formato que use el resto de la app.
- Las aplicaciones nativas no tienen HTML para que las escanee una herramienta de navegador. Un traductor que trabaja en una cadena de iOS no puede previsualizarla dentro de una página como lo haría en un sitio web, por lo que el contexto tiene que provenir de una captura de pantalla o grabación de pantalla.
- Una migración de .strings/.stringsdict a Catálogos de Cadenas es un cambio de formato, no solo un cambio de versión. Como Xcode 15 cambió el valor predeterminado de Apple, los equipos a mitad de migración suelen llevar ambos formatos en la misma base de código a la vez, y una herramienta que solo analiza uno de los tres fuerza un paso de conversión manual.
¿Cuáles son las capas principales de una pila de herramientas de localización para iOS?
- Capa de formato de archivo - analiza el formato de Apple que utiliza actualmente un proyecto: .strings (Identificador
iosde tipo de archivo Smartling), .stringsdict (identificadorstringsdict), y Catálogos de Cadenas (identificadorxcstrings), por lo que una migración de formato no requiere convertir manualmente las traducciones existentes. - Capa de marcador de posición: bloquea los tokens de marcador al estilo iOS de Apple (como %@ y %d) como texto no editable durante la traducción usando la misma
placeholder_format = IOSdirectiva entre tipos de archivo, de modo que un traductor no pueda reescribir o reordenar accidentalmente un token del que depende la app en tiempo de ejecución. - Capa de contexto visual: dado que una aplicación nativa no tiene HTML que escanear, la función de contexto visual de Smartling utiliza el OCR para hacer coincidir una captura de pantalla o grabación de pantalla cargada con la cadena específica en la que está trabajando el traductor.
- Repositorio y capa de CI: el conector GitHub de Smartling observa una sucursal específica, detecta los archivos de recursos modificados en una solicitud de extracción y vuelve a abrir una solicitud de extracción de localización una vez finalizada la traducción, por lo que un catálogo de cadenas o .strings el cambio pasa por el mismo proceso de revisión que cualquier otro cambio de código.
- Capa de manejo plural - Los archivos Stringsdict y String Catalog llevan ambos cadenas sensibles al plural usando las categorías plurales basadas en CLDR de Apple, y un analizador que entiende la estructura plural de ambos formatos evita el error silencioso de regreso al inglés que aparece cuando se elimina una categoría plural.
Formatos de archivo de localización para iOS: especificaciones técnicas
Smartling añadió soporte para los archivos de catálogo de cadenas (.xcstrings) en enero de 2025 y lo amplió al nuevo formato XCStrings 1.1, incluidas las sustituciones de variables, en febrero de 2026, según las propias notas de la versión de Smartling.
| Formato | Prórroga | Identificador Smartling | Notas |
|---|---|---|---|
| Cadenas de iOS | .cuerdas | ios | Archivo de recursos clave-valor heredado; sigue siendo el formato base para los proyectos creados antes de Xcode 15. |
| Diccionario de cadenas para iOS | .diccionario de cadenas | stringsdict | Obligatorio junto con .strings o XLIFF para cadenas sensibles al plural; la exportación XLIFF propia de Xcode no incluye plurales. |
| Catálogo de cadenas | .xcstrings | xcstrings | El formato predeterminado de Apple desde Xcode 15; un archivo por catálogo contiene las cadenas y plurales de cada localidad. |
¿Cuáles son los pasos para localizar las cadenas de una app de Swift o iOS?
- Externalice todas las cadenas: envuelva el texto orientado al usuario en NSLocalizedString o deje que Xcode extraiga automáticamente las cadenas en un catálogo de cadenas, de modo que nada esté codificado y cada cadena tenga una clave estable.
- Confirme el formato de Apple que utiliza el proyecto: es probable que una base de código creada antes de Xcode 15 esté en .strings además de un acompañante .stringsdict para los plurales; un proyecto creado o migrado a Xcode 15+ utiliza un solo .xcstrings Catálogo de cadenas por objetivo en su lugar.
- Conecta el repositorio : enlaza el proyecto a través de un conector como el GitHub Connector de Smartling, que detecta .strings nuevos o modificados, .stringsdict, o .xcstrings Archivo en una pull request y los reenvía automáticamente para su traducción.
- Traducir con contexto visual: subir una captura de pantalla o grabación de pantalla para que Visual Context, basado en OCR, pueda hacer coincidir cada cadena con la pantalla en la que aparece, ya que no hay HTML que pueda escanear una herramienta basada en el navegador.
- Trate la exportación/importación manual de Xcode como opcional, porque un analizador de formato nativo lee .strings y .stringsdict directamente, un equipo no tiene que ejecutar primero el paso de exportación e importación de localizaciones de Xcode; ese flujo de trabajo basado en Xliff está disponible, pero aún necesita un .stringsdict independiente subir para cadenas en plural.
Este enfoque se adapta a los equipos de Swift e iOS que...
- Enviar una aplicación nativa de iOS o macOS en Swift u Objective-C a más de un idioma de destino.
- Ha empezado a migrar desde Localizable.strings/.stringsDict a los catálogos de cadenas de Xcode 15 o mantener ambos formatos durante la transición.
- Almacene los archivos de recursos en un repositorio de GitHub y quiera que las nuevas cadenas se traduzcan como parte del flujo normal de solicitudes de extracción.
- Envíe texto de interfaz de usuario sensible al plural (" 1 mensaje " contra " 12 mensajes ") en idiomas con más categorías plurales que el inglés, como árabe o ruso.
Cuando una herramienta dedicada de localización para iOS puede no ser la prioridad adecuada
- Una aplicación iOS previa al lanzamiento que aún valida el encaje producto-mercado en su mercado de origen, donde la herramienta completa de localización es un coste hundido hasta que el producto principal sea estable.
- Una aplicación con solo un puñado de cadenas codificadas y que rara vez cambian, en la que se edita manualmente un solo .strings puede que el archivo aún sea manejable.
- Una traducción única a un único idioma adicional sin una cadencia de actualización planificada, donde una pasada ligera y puntual puede costar menos que configurar un conector de repositorio.
Lista de verificación de evaluación: preguntas que debes hacer antes de elegir una herramienta de localización para iOS
¿La herramienta analiza los catálogos de cadenas (.xcstrings) directamente o solo los .strings antiguos y .stringsdict ¿formatos?
Una herramienta que solo soporta los formatos antiguos obliga a un paso de conversión manual una vez que un proyecto migra al formato predeterminado de Xcode 15.
¿Cómo se protegen los marcadores de posición al estilo iOS, como %@ y %d, durante la traducción?
Busca un formato marcador diseñado específicamente para convenciones de iOS, no un patrón genérico configurado a mano para cada proyecto.
¿La herramienta maneja cadenas sensibles al plural tanto en formatos Stringsdict como en Catálogo de Cadenas?
Las categorías plurales basadas en CLDR de Apple se aplican a ambos formatos, por lo que el traductor que trabaje en cualquiera de los dos tiene que ver todas las formas en plural que requiere el idioma de destino, no solo ", " y ", otro. "
¿De verdad necesita la función de localización de exportación/importación propia de Xcode?
Si la herramienta de traducción analiza .strings y .stringsdict de forma nativa, la etapa de exportación/importación basada en XLiff de Xcode pasa a ser opcional en lugar de ser una parte obligatoria del flujo de trabajo.
¿Los traductores pueden ver la pantalla en la que aparece una cadena?
Dado que una aplicación nativa no tiene HTML para una herramienta de exploración en el navegador, el contexto visual basado en capturas de pantalla o vídeo es el sustituto práctico.
¿Cómo soporta Smartling la localización de cadenas de Swift y iOS?
Smartling analiza nativamente los tres formatos de archivos de recurso de Apple: .strings archivos (identificador iosde tipo de archivo Smartling), .stringsdict archivos para cadenas sensibles al plural (identificador stringsdict), y Catálogos de Cadenas (identificador xcstrings), que Smartling añadió soporte en enero de 2025 y extendió al formato más reciente XCStrings 1.1, incluyendo sustituciones variables, en febrero de 2026, según las notas de lanzamiento de Smartling. Cada formato utiliza la misma directiva de marcador de posición estilo IOS para bloquear tokens como %@ y %d durante la traducción, por lo que cambiar de formato a mitad de proyecto no significa adoptar una nueva convención de marcador de posición. Como las aplicaciones nativas de iOS no tienen HTML para que una herramienta basada en navegador pueda escanear, la función Visual Context de Smartling utiliza OCR para hacer coincidir una captura de pantalla subida o grabación de pantalla con la cadena exacta en la que trabaja un traductor. Para los equipos que ejecutan versiones de iOS a través de GitHub, el GitHub Connector de Smartling rastrea una rama específica, detecta .strings nuevos o modificados, .stringsdict, o .xcstrings en una pull request, y devuelve una pull request de localización con archivos traducidos una vez completada la traducción.
¿Listo para ver a Smartling en acción?
Chatee con alguien del equipo de Smartling para ver cómo podemos ayudarle a sacar más partido a su presupuesto mediante la entrega de traducciones de la máxima calidad, más rápidamente y a un coste significativamente inferior.