Android (Kotlin)
Le plugin Gradle translate-projects-android ajoute la tâche ./gradlew translateProjects : il lit res/values/strings.xml, traduit les textes dans chaque langue que vous configurez et écrit values-<langue>/strings.xml.
Le plugin n'est pas encore publié. La version et l'installation finale seront complétées lors de sa publication sur le Gradle Plugin Portal.
Prérequis
- Un projet Android avec Gradle et le DSL Kotlin (
build.gradle.kts). - JDK 17 ou supérieur pour exécuter Gradle.
- Un projet et un token API de Translate Projects. Consulte Premiers pas.
1. Installez le plugin
Ajoutez le plugin dans le build.gradle.kts du module de l'application :
plugins {
id("com.android.application")
id("dev.translateprojects.android") version "VERSION"
}
Le plugin est téléchargé depuis le Gradle Plugin Portal, déjà présent dans les dépôts par défaut (gradlePluginPortal() dans settings.gradle.kts).
2. Configurez le plugin
translateProjects {
sourceLang = "es"
targetLangs = listOf("en", "pt-BR", "fr")
apiKey = providers.environmentVariable("TRANSLATE_PROJECTS_API_KEY")
}
| Option | Obligatoire | Description |
|---|---|---|
sourceLang | Oui | Langue de res/values/strings.xml. Elle doit être la langue par défaut du projet. |
targetLangs | Oui | Langues cibles, avec les codes de l'API (en, pt-BR, zh-Hans). |
apiKey | Oui | Token API du projet. Lisez-le depuis une variable d'environnement, ne l'écrivez jamais dans le fichier. |
3. Écris tes textes
Rédigez les textes dans la langue de base dans res/values/strings.xml, comme dans n'importe quelle application Android :
<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. Traduis
export TRANSLATE_PROJECTS_API_KEY=tu_token
./gradlew translateProjects
Fichiers générés
app/src/main/res/
├── values/strings.xml ← langue de base, elle n'est pas modifiée
├── values-en/strings.xml
├── values-pt-rBR/strings.xml ← pt-BR utilise le format Android
└── values-fr/strings.xml
Le name de chaque texte est sa clé dans Translate Projects : vous pouvez donc relire et modifier les traductions dans le tableau de bord.
Ce qui est respecté
- Les placeholders (
%1$s,%d,%2$.2f) restent intacts. pluralsetstring-arraysont traduits élément par élément et conservent leur structure.- Les textes avec
translatable="false"ne sont ni envoyés ni copiés dans les autres langues. - Les apostrophes et guillemets sont échappés comme l'exige Android (
\',\"), et le CDATA ainsi que le HTML de base (<b>,<i>,<u>) sont conservés.
Cache
Une seconde exécution sans nouveaux textes effectue deux requêtes et ne traduit rien. Si quelqu'un corrige une traduction dans le panneau de Translate Projects, la prochaine exécution la récupère sans --force ; vos modifications manuelles dans le fichier restent prioritaires. Plus de détails dans Cache et erreurs.
Erreurs courantes
- Le token est manquant: exportez
TRANSLATE_PROJECTS_API_KEYdans le même terminal (ou comme secret en CI) avant d'exécuter Gradle. - Token invalide (
Token no válido): copiez à nouveau le token du projet. Lesstrings.xmlexistants ne sont pas modifiés. La langue source n'est pas la langue par défaut:sourceLangdoit être la langue par défaut du projet.- Clé d'IA manquante (
MISSING_API_KEY): configurez le fournisseur, le modèle et la clé dans le projet ; les textes manquants seront réessayés lors de la prochaine exécution. - Traduction partielle, erreurs 5xx ou réseau: les langues incomplètes sont à nouveau demandées lors de l'exécution suivante.
🚀 Automatisez vos traductions gratuitement
Translate Projects est gratuit. Vous créez votre projet, connectez la clé de votre fournisseur d'IA et ne lui payez que ce que vous dépensez.
- Sans forfaits ni carte de crédit: Toutes les fonctionnalités sont disponibles dès le premier jour.
- Utilisez votre propre IA: Claude, OpenAI, DeepSeek ou Gemini. Votre clé est stockée chiffrée.
- Réseau de traductions partagé: Si un texte a déjà été traduit, vous le recevez instantanément sans dépenser votre clé.
- Panneau d'administration: Vérifiez et modifiez toutes vos traductions depuis un seul endroit.
Nous sommes là pour vous aider
Si vous avez des questions, besoin d'aide ou souhaitez contribuer, n'hésitez pas à me contacter. Je suis à votre disposition pour vous soutenir dans tout ce dont vous avez besoin.
- Site web: neiderruiz.com
- GitHub: @neiderruiz
- Twitter: @neiderruiz
- YouTube: Neider Ruiz
Soutenez le projet
Si ce projet vous a été utile, je vous invite à m'offrir un café. Votre soutien m'aide à continuer de m'améliorer et à créer du contenu de valeur. Merci d'être là ! ☕