Saltar al contenido principal

Android (Kotlin)

El plugin de Gradle translate-projects-android añade la tarea ./gradlew translateProjects: lee res/values/strings.xml, traduce los textos a cada idioma que configures y escribe values-<idioma>/strings.xml.

En desarrollo

El plugin todavía no está publicado. La versión y la instalación final se completarán cuando salga en el Gradle Plugin Portal.

Requisitos​

  • Un proyecto Android con Gradle y el DSL de Kotlin (build.gradle.kts).
  • JDK 17 o superior para ejecutar Gradle.
  • Un proyecto y un API token de Translate Projects. Mira Primeros pasos.

1. Instala el plugin​

Añade el plugin en el build.gradle.kts del módulo de la app:

app/build.gradle.kts
plugins {
id("com.android.application")
id("dev.translateprojects.android") version "VERSION"
}

El plugin se descarga del Gradle Plugin Portal, que ya está en los repositorios por defecto (gradlePluginPortal() en settings.gradle.kts).

2. Configura el plugin​

app/build.gradle.kts
translateProjects {
sourceLang = "es"
targetLangs = listOf("en", "pt-BR", "fr")
apiKey = providers.environmentVariable("TRANSLATE_PROJECTS_API_KEY")
}
OpciónObligatorioDescripción
sourceLangSíIdioma de res/values/strings.xml. Debe ser el idioma por defecto del proyecto.
targetLangsSíIdiomas destino, con los códigos de la API (en, pt-BR, zh-Hans).
apiKeySíAPI token del proyecto. Léelo de una variable de entorno, nunca lo escribas en el archivo.

3. Escribe tus textos​

Escribe los textos en el idioma base en res/values/strings.xml, como en cualquier app Android:

app/src/main/res/values/strings.xml
<resources>
<string name="app_name" translatable="false">Ruteo</string>
<string name="welcome">Hola, %1$s</string>
<string name="login_button">Iniciar sesión</string>
<plurals name="routes_count">
<item quantity="one">%d ruta</item>
<item quantity="other">%d rutas</item>
</plurals>
<string-array name="days">
<item>Lunes</item>
<item>Martes</item>
</string-array>
</resources>

4. Traduce​

Terminal
export TRANSLATE_PROJECTS_API_KEY=tu_token
./gradlew translateProjects

Archivos que genera​

app/src/main/res/
├── values/strings.xml ← idioma base, no se modifica
├── values-en/strings.xml
├── values-pt-rBR/strings.xml ← pt-BR usa el formato de Android
└── values-fr/strings.xml

El name de cada texto es su clave en Translate Projects, así que puedes revisar y editar las traducciones en el panel.

Qué respeta​

  • Los placeholders (%1$s, %d, %2$.2f) se mantienen intactos.
  • plurals y string-array se traducen elemento por elemento y conservan su estructura.
  • Los textos con translatable="false" no se envían ni se copian a los otros idiomas.
  • Los apóstrofes y comillas se escapan como pide Android (\', \"), y se conservan el CDATA y el HTML básico (<b>, <i>, <u>).

Caché​

Una segunda ejecución sin textos nuevos hace dos peticiones y no traduce nada. Si alguien corrige una traducción en el panel de Translate Projects, la siguiente ejecución la baja sin --force; tus ediciones manuales en el archivo siguen teniendo prioridad. Más detalles en Caché y errores.

Errores comunes​

  • Falta el token: exporta TRANSLATE_PROJECTS_API_KEY en la misma terminal (o como secreto en CI) antes de ejecutar Gradle.
  • Token inválido (Token no válido): copia de nuevo el token del proyecto. Los strings.xml existentes no se tocan.
  • El idioma de origen no es el predeterminado: sourceLang debe ser el idioma por defecto del proyecto.
  • Falta la key de IA (MISSING_API_KEY): configura el proveedor, el modelo y la key en el proyecto; los textos que faltan se reintentan en la siguiente ejecución.
  • Traducción parcial, errores 5xx o de red: los idiomas incompletos se vuelven a pedir en la siguiente ejecución.
Gratis

🚀 Automatiza tus traducciones gratis​

Translate Projects es gratuito. Creas tu proyecto, conectas la key de tu proveedor de IA y solo le pagas a él lo que gastes.

  • Sin planes ni tarjeta de crédito: Todas las funciones están disponibles desde el primer día.
  • Usa tu propia IA: Claude, OpenAI, DeepSeek o Gemini. Tu key se guarda cifrada.
  • Red de traducciones compartida: Si un texto ya fue traducido, lo recibes al instante sin gastar tu key.
  • Panel de administración: Revisa y edita todas tus traducciones desde un solo lugar.

Crear cuenta gratis →

Soporte

Estamos aquí para ayudarte​

Si tienes alguna pregunta, necesitas ayuda o quieres contribuir, no dudes en contactarme. Estoy a tu disposición para apoyarte en lo que necesites.

Apoya el Proyecto​

Si este proyecto te ha sido útil, te invito a invitarme un café. Tu apoyo me ayuda a seguir mejorando y creando contenido de valor. ¡Gracias por estar aquí! ☕

Buy me a coffee