Explorando Translation API para traducción de contenidos (Parte 6 de 6)
1Cómo usar translationPresentation de Translation API para traducir texto fácilmente
2Translation API: Integrar traducciones en tu UI con TranslationSession
3Translation API: Cómo realizar traducciones bajo demanda
4Translation API: Cómo realizar múltiples traducciones
5Translation API: Cómo verificar idiomas soportados
6Cómo preparar tu app para traducciones sin conexión
Cómo preparar tu app para traducciones sin conexión

Misael Cuevas
26 marzo, 20253min de lectura
Para escenarios en los que necesites traducir texto sin conexión a internet, Translation API ofrece la posibilidad de descargar paquetes de idiomas antes de que el usuario realice la acción de traducir en tu app, como se ha explicado en nuestra serie de artículos. Esto se puede lograr utilizando la función prepareTranslation
en una instancia de la clase TranslationSession
.
Recuerda importar Translation API para usar esta funcionalidad:
import Translation
.
Configuración de la sesión de traducción
Antes de utilizar esta función, primero debes conocer el idioma de origen y el idioma de destino que deseas descargar, y especificarlos en la configuración de la sesión de traducción. Por ejemplo, para descargar los paquetes de idioma inglés y francés:
@State private var configuration = TranslationSession.Configuration(source: Locale.Language(identifier: "en_US"),target: Locale.Language(identifier: "fr_FR"))
Uso del modificador translationTask
Luego, en tu vista de SwiftUI, añade el modificador translationTask
y pasa la configuración como argumento:
.translationTask(configuration) { session in}
Dentro de este modificador, puedes llamar a la función prepareTranslation
para descargar los paquetes de idioma:
do {try await session.prepareTranslation()} catch {debugPrint("Error preparing translation: \(error)")}
Iniciar la descarga de los paquetes de idioma
Por último, para iniciar la descarga de los paquetes de idioma, simplemente invalida la variable configuration:
configuration.invalidate()
Si deseas conocer más sobre Configuration
y cómo realizar traducciones bajo demanda, te invito a leer el artículo sobre Cómo realizar traducciones bajo demanda.
Ejemplo práctico
A continuación, te muestro un ejemplo sencillo con lo explicado anteriormente:
import SwiftUIimport Translationstruct MyView: View {@State private var configuration = TranslationSession.Configuration(source: Locale.Language(identifier: "en_US"),target: Locale.Language(identifier: "fr_FR"))@State private var isOn = falsevar body: some View {Toggle("Download Languages", systemImage: "translate", isOn: $isOn).padding().onChange(of: isOn) { oldState, newState inguard newState else { return }configuration.invalidate()}.translationTask(configuration) { session inguard isOn else { return }do {try await session.prepareTranslation()} catch {debugPrint("Error preparing translation: \(error)")}}}}
Esta vista contiene un toggle que, al activarse, descarga los paquetes de idioma inglés y francés. Además, se utiliza la variable de estado isOn
para controlar que las traducciones solo se preparen cuando esté activado. Recuerda que cuando configuration está inicializado con los idiomas de origen y destino, la descarga de los paquetes de idioma se realiza automáticamente. Si deseas descargar otros idiomas, simplemente modifica la configuración de la sesión de traducción.

Una vez que los paquetes de idiomas estén preparados, cuando el usuario traduzca contenido en tu app, Translation API utilizará los paquetes descargados para realizar la traducción sin necesidad de conexión a internet.
Conclusión
Translation API ofrece una solución eficiente para realizar traducciones sin conexión a internet, permitiendo descargar previamente los paquetes de idioma y mejorar la experiencia del usuario. Implementar esta funcionalidad en tu app con SwiftUI es sencillo gracias a prepareTranslation
.
Explorando Translation API para traducción de contenidos (Parte 6 de 6)
1Cómo usar translationPresentation de Translation API para traducir texto fácilmente
2Translation API: Integrar traducciones en tu UI con TranslationSession
3Translation API: Cómo realizar traducciones bajo demanda
4Translation API: Cómo realizar múltiples traducciones
5Translation API: Cómo verificar idiomas soportados
6Cómo preparar tu app para traducciones sin conexión