Explorando Translation API para traducción de contenidos (Parte 6 de 6)1

Cómo usar translationPresentation de Translation API para traducir texto fácilmente

2

Translation API: Integrar traducciones en tu UI con TranslationSession

3

Translation API: Cómo realizar traducciones bajo demanda

4

Translation API: Cómo realizar múltiples traducciones

5

Translation API: Cómo verificar idiomas soportados

6

Cómo preparar tu app para traducciones sin conexión

Cómo preparar tu app para traducciones sin conexión

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 SwiftUI
import Translation
struct MyView: View {
@State private var configuration = TranslationSession.Configuration(
source: Locale.Language(identifier: "en_US"),
target: Locale.Language(identifier: "fr_FR")
)
@State private var isOn = false
var body: some View {
Toggle("Download Languages", systemImage: "translate", isOn: $isOn)
.padding()
.onChange(of: isOn) { oldState, newState in
guard newState else { return }
configuration.invalidate()
}
.translationTask(configuration) { session in
guard 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.

Vista de SwiftUI preparando traducciones al activar toggle

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)1

Cómo usar translationPresentation de Translation API para traducir texto fácilmente

2

Translation API: Integrar traducciones en tu UI con TranslationSession

3

Translation API: Cómo realizar traducciones bajo demanda

4

Translation API: Cómo realizar múltiples traducciones

5

Translation API: Cómo verificar idiomas soportados

6

Cómo preparar tu app para traducciones sin conexión

Comparte este artículo

Subscríbete a nuestro Newsletter

Mantente al día en el mundo de las aplicaciones móviles con nuestro blog especializado.

Artículos semanales

Todas las semanas artículos nuevos sobre el mundo de las aplicaciones móviles.

No spam

No te enviaremos spam, solo contenido de calidad. Puedes darte de baja cuando quieras.

Contenido de calidad

Nada de contenido generado de manera automática usando ChatGPT.

Recomendaciones

Tips indispensables sobre mejores prácticas y metodologías.

© 2025 AsyncLearn