Traducir archivos .strings de iOS
Un archivo .strings es una lista de líneas "key" = "value"; donde el valor contiene especificadores de formato como %@. KAERIS traduce los valores y verifica que cada especificador siga presente.
KAERIS ha traducido esta página y revisado cada línea traduciéndola de vuelta. Un hablante nativo aún no la ha revisado. Original en inglés
Cómo se construye un archivo .strings
Una línea por cada "key" = "value";, notas en /* … */. Los valores escapan comillas y saltos de línea con una barra invertida. Los plurales no están aquí: Xcode usa .stringsdict o un Catálogo de Cadenas para ellos, y KAERIS lee .strings y .xcstrings.
/* Greeting on the home screen */ "welcome" = "Welcome back, %@!"; "items_count" = "%1$d of %2$d items synced"; "quote" = "Press \"Done\" to continue.";
Qué tener en cuenta en las traducciones .strings
%@ y especificadores posicionales
%@,%dy%1$dson marcadores de posición. En un idioma que reordena palabras, la forma posicional mantiene los argumentos correctos; un especificador cambiado o perdido se señala.Escapes
\"y\ndentro de un valor se leen y escriben correctamente, así que una comilla en una traducción no termina la cadena.Las notas permanecen en el origen
/* … */no se incluyen en el archivo traducido, que recibe un comentario de idioma en una línea. Mantenga el contexto para traductores en el archivo fuente.Longitud
El alemán y finlandés suelen ser más largos que el inglés. La verificación avisa cuando una traducción es mucho más larga que el original, lo que importa para botones.
Una ejecución real: traducido al alemán y verificado
Una ejecución real, 27 de octubre de 2026, sin ediciones manuales: kaeris translate Localizable.strings --langs de con kaeris 0.2.35, 4 segundos, modelo openai/gpt-4.1-mini (el modelo de reserva del servicio respondió este trabajo). Abajo, el archivo alemán que generó y lo que kaeris check dice sobre él.
/* de */ "welcome" = "Willkommen zurück, %@!"; "items_count" = "%1$d von %2$d Elementen synchronisiert"; "quote" = "Drücken Sie \"Fertig\", um fortzufahren.";
$ kaeris check --source Localizable.strings --langs de ✓ de: complete & placeholder-safe ✓ all locales complete & placeholder-safe
Lo que KAERIS hace con él
Claves y orden conservados
Cada clave se escribe con su valor traducido.
Especificadores contados
Un
%@o%1$dperdido o cambiado se detecta sin modelo.Chequeo gratuito para este formato
El chequeo gratuito en /check lee este formato y funciona sin clave ni cuenta. El comando de terminal
kaeris checktambién lo lee: soporta los 13 formatos desde kaeris 0.2.35, con las mismas reglas y sin enviar nada a ningún lado.
Ejecuta en tres pasos
Instala el CLI
Ejecuta
pip install kaeris.Traducir el archivo
Ejecute
kaeris translate en.lproj/Localizable.strings --langs de,ja.Verificar el resultado
Suba el archivo fuente y la traducción en la página de verificación gratuita.
pip install kaeris kaeris translate en.lproj/Localizable.strings --langs de,ja --verify
Preguntas
¿Conserva %@ y %1$d?
Sí. Los especificadores se comparan con la fuente después de la traducción y se marca si falta o cambia alguno. En la ejecución real anterior %@, %1$d y %2$d regresaron todos.
¿Y los plurales?
.strings no tiene sintaxis para plurales. Xcode mantiene los plurales en .stringsdict o en un Catálogo de Cadenas; KAERIS lee el catálogo y expande los plurales por idioma, vea la página de .xcstrings.
¿Es gratis?
Sí, sin cuenta: 10.000 caracteres por archivo y hasta 8 idiomas por ejecución. Una clave API gratuita eleva el límite de archivos a 50.000 caracteres. La licencia vitalicia cuesta $79 una vez, con tu propia clave OpenRouter; los planes mensuales empiezan en $19. Precios
¿Puedo ejecutarlo desde la terminal o en CI?
Sí. pip install kaeris, luego kaeris translate en.lproj/Localizable.strings --langs de,ja. Véase también iOS. La GitHub Action ejecuta la misma traducción en un pull request. Documentación CLI · GitHub Action
Seguir adelante
Referencia CLI · Referencia de verificación · Traducir en el navegador · Verificación gratuita · Convertir formatos · Pseudo-localización
Otros formatos: JSON · YAML · .po · ARB · XLIFF · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML