Explorando Translation API para traducción de contenidos (Parte 3 de 4)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

Translation API: Cómo realizar traducciones bajo demanda

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
// 1
import Translation
struct 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 in
await translate(session: session)
}
}
func translate(session: TranslationSession) async {
do {
let response = try await session.translate(translatedText)
translatedText = response.targetText
} catch {
// Handle errors
}
}
}
  1. Importa el framework Translation.
  2. Declara la variable configuration como una variable de estado opcional.
  3. Añade un gesto de toque al texto para iniciar o reiniciar la traducción.
  4. Aplica el modificador translationTask para gestionar la lógica de traducción.
Vista de SwiftUI traduciendo un texto al ser presionado

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

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