Mejora la accesibilidad y experiencia de usuario con String Catalogs

Libranner Santos
28 julio, 20233min de lectura
String Catalog es una nueva herramienta que automáticamente da seguimiento a nuestras cadenas localizables. Nos permite saber en cualquier momento el estado de nuestras traducciones y manejar variantes, todo en un solo archivo.
¿Cómo crear un String Catalog?
Localizable.xcstrings
Son archivos JSON. En el momento de la compilación, se convierten en archivos .strings y .stringsdict. Esto garantiza la retrocompatibilidad. Contienen una tabla completa de cadenas en un solo archivo, incluyendo todas las traducciones y metadatos adicionales para cada cadena localizable.
Puedes tener múltiples String Catalogs. Las claves son independientes de otros catálogos, por lo que puedes usar la misma clave en diferentes catálogos.
Xcode + Swift Catalogs
Cada vez que compilas, Xcode encuentra strings en el esquema y plataforma actuales. Para ello, la opción Compiler to Extract Swift debe estar activada:
Las cadenas de texto del código fuente actúan como la fuente de verdad para las cadenas localizables.
Para Swift Package Manager, debes utilizar swift-tools 5.9.

Puedes ver el estado de todas tus traducciones y verificar la cobertura de cada una. Además, puedes agregar tantos lenguajes como necesites. Los diferentes estados son:
- El estado New indica que una String no ha sido traducida al idioma seleccionado.
- Needs Review se aplica cuando una cadena puede requerir cambios. Puedes hacer clic derecho en una cadena y seleccionar "Mark as Reviewed".
- Xcode mostrará una String como Stale cuando ya no se encuentre en el código.
- Una marca de verificación verde indica que está lista para usarse.
Pasando localizaciones como parámetros
LocalizedStringResource
es el tipo recomendado para representar y pasar cadenas localizables.
struct ProductView: View {let name: LocalizedStringResourcelet buyTitle: LocalizedStringResourcevar body: some View {VStack {Text(name)Button(action: {}, label: {Text(buyTitle)})}}}
Cuando declaramos name
y buyTitle
, utilizamos el tipo LocalizedStringResource
.
Cómo migrar Localizable Strings
Debemos seguir los siguientes pasos:
String Variants
Las variantes nos permiten manejar condiciones específicas de nuestras cadenas de texto, como por ejemplo, cuando una frase debe manejar el plural y el singular de manera diferente.
Antes teníamos que usar stringsdict. Ahora puedes hacerlo directamente en el String Catalog.
Puedes tener variantes basadas en el dispositivo.
Substituciones
Cuando tienes más de una variable en una cadena y todas ellas pueden estar en plural, puedes agregar nombres personalizados a tus variables.
Conclusión
El uso de String Catalogs en el desarrollo de aplicaciones para plataformas Apple mejora la accesibilidad y la experiencia de usuario. Con esta funcionalidad, podemos gestionar de manera eficiente las cadenas localizables.
Recuerda:
- Activar la opción Compiler to Extract Swift.
- Usar
LocalizedStringResource
para pasar las cadenas localizables. - Para Swift Package Manager, debes utilizar swift-tools 5.9.
- Usar substituciones y variantes para hacer tu vida más fácil.