Explorando Translation API para traducción de contenidos (Parte 3 de 4)
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
Translation API: Cómo realizar traducciones bajo demanda

Misael Cuevas
22 enero, 20253min de lectura
En el artículo anterior de la serie sobre Translation API, aprendiste que el modificador translationTask
se ejecuta antes de que la vista aparezca. Sin embargo, puedes controlar cuándo realizar la traducción configurando el modificador con la estructura Configuration
de TranslationSession
.
Estas funcionalidades de la Translation API no están disponibles en el simulador. Es necesario usar un dispositivo real.
Como su nombre lo indica, la estructura Configuration
se utiliza para almacenar los parámetros necesarios para la traducción y contiene las siguientes propiedades:
source
: Especifica el idioma del contenido a traducir.target
: Define el idioma al que se desea traducir.version
: Un valor entero que indica un cambio en la configuración.
Para aprovechar esta funcionalidad en una vista SwiftUI, primero crea una variable de estado opcional para almacenar la configuración de la traducción:
@State var configuration: TranslationSession.Configuration?
Esta variable debe ser opcional (nil
) para evitar que el modificador translationTask
se active automáticamente al inicio. Luego, puedes añadir el modificador translationTask
a la vista y pasar la configuración como argumento:
.translationTask(configuration) { session in}
Dentro del closure, podrás realizar la traducción necesaria.
Para iniciar la traducción cuando lo necesites, asigna un valor a la variable configuration
:
configuration = TranslationSession.Configuration()
El framework puede detectar automáticamente el idioma de origen y el idioma de destino. Si prefieres especificarlos, utiliza los parámetros source
y target:
configuration = TranslationSession.Configuration(source: Locale.Language(identifier: "en_US"),target: Locale.Language(identifier: "fr_FR"))
En este caso, el texto se traducirá del inglés al francés. Puedes dejar uno de los idiomas como nil
si deseas que el framework lo detecte automáticamente.
Si necesitas volver a ejecutar la traducción con los mismos idiomas, simplemente invalida la configuración actual:
configuration?.invalidate()
También puedes modificar los idiomas para volver a ejecutar la traducción:
configuration?.source = Locale.Language(identifier: "en_US")
Código de ejemplo
A continuación, te muestro un ejemplo de cómo implementar la traducción bajo demanda en SwiftUI:
import SwiftUI// 1import Translationstruct ContentView: View {@State var translatedText: String = "You want my treasure, you can have it. I left everything I gathered together in one place. Now, you just have to find it."// 2@State var configuration: TranslationSession.Configuration?var body: some View {Text(translatedText).padding()// 3.onTapGesture {guard configuration == nil else {configuration?.invalidate()return}configuration = TranslationSession.Configuration()}// 4.translationTask(configuration) { session inawait translate(session: session)}}func translate(session: TranslationSession) async {do {let response = try await session.translate(translatedText)translatedText = response.targetText} catch {// Handle errors}}}
- Importa el framework
Translation
. - Declara la variable
configuration
como una variable de estado opcional. - Añade un gesto de toque al texto para iniciar o reiniciar la traducción.
- Aplica el modificador
translationTask
para gestionar la lógica de traducción.

Conclusión
El uso de la estructura Configuration
en la Translation API te permite realizar traducciones de manera flexible y controlada en tus apps SwiftUI. Esta funcionalidad no solo facilita la localización de contenido, sino que también mejora la experiencia del usuario al permitir traducciones dinámicas bajo demanda.
Explorando Translation API para traducción de contenidos (Parte 3 de 4)
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