Formatos / Apple String Catalog

String Catalogs, sin editar JSON a mano

Xcode 15 sustituyó .strings por un único archivo .xcstrings que contiene todos los idiomas a la vez. Es un formato mejor y peor cosa que meter en un pull request.

.xcstrings

Un archivo, todos los idiomas, un conflicto de fusión

El antiguo esquema .strings daba a cada idioma su propio archivo, así que dos traductores con dos idiomas nunca tocaban las mismas líneas. Un String Catalog los pone todos en un único documento JSON: cada traducción acaba en el mismo archivo y dos cualesquiera pueden chocar.

Al importarlo en Linguiqo se vuelve a separar: cada idioma pasa a ser un idioma, cada clave un texto, y el archivo se escribe una sola vez a la salida.

Las variaciones de plural se leen, no se aplanan

Un String Catalog guarda los plurales en variations.plural, por categoría de CLDR. Linguiqo los lee en las mismas casillas de plural que usa cualquier otro formato, así que un traductor al checo ve cuatro campos y uno al inglés ve dos.

Las variaciones por dispositivo son otro eje y se dejan como están en lugar de adivinarlas.

Lo que recibe Xcode

Un archivo con la misma forma con la que llegó, con las localizaciones rellenas. Las claves que extrajo Xcode se quedan tal como Xcode las escribió.

Si un texto ha cambiado tanto en Xcode como en Linguiqo desde la última sincronización, la importación conserva la versión de Linguiqo y guarda la del archivo en el historial del texto.

Preguntas

¿Admite plurales en .xcstrings?

Sí, variations.plural se lee por idioma y se asigna a las categorías de CLDR de ese idioma.

¿Puedo seguir usando archivos .strings?

Sí. Apple .strings se admite por separado, así que un proyecto a mitad de la migración puede importar ambos.

Sube un archivo Apple String Catalog y compruébalo

La demo lee un archivo real tuyo y te muestra el resultado. Sin cuenta, y a las dos horas se borra todo.

Abrir la demo

Qué es Linguiqo