Android (Kotlin)
O plugin do Gradle translate-projects-android adiciona a tarefa ./gradlew translateProjects: ele lê res/values/strings.xml, traduz os textos para cada idioma que você configurar e grava values-<idioma>/strings.xml.
O plugin ainda não foi publicado. A versão e a instalação final serão concluídas quando ele for lançado no Gradle Plugin Portal.
Requisitos
- Um projeto Android com Gradle e o DSL do Kotlin (
build.gradle.kts). - JDK 17 ou superior para executar o Gradle.
- Um projeto e um API token do Translate Projects. Veja Primeiros passos.
1. Instale o plugin
Adicione o plugin no build.gradle.kts do módulo do app:
plugins {
id("com.android.application")
id("dev.translateprojects.android") version "VERSION"
}
O plugin é baixado do Gradle Plugin Portal, que já está nos repositórios padrão (gradlePluginPortal() em settings.gradle.kts).
2. Configure o plugin
translateProjects {
sourceLang = "es"
targetLangs = listOf("en", "pt-BR", "fr")
apiKey = providers.environmentVariable("TRANSLATE_PROJECTS_API_KEY")
}
| Opção | Obrigatório | Descrição |
|---|---|---|
sourceLang | Sim | Idioma de res/values/strings.xml. Deve ser o idioma padrão do projeto. |
targetLangs | Sim | Idiomas de destino, com os códigos da API (en, pt-BR, zh-Hans). |
apiKey | Sim | Token de API do projeto. Leia-o de uma variável de ambiente, nunca o escreva no arquivo. |
3. Escreva seus textos
Escreva os textos no idioma base em res/values/strings.xml, como em qualquer app 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. Traduza
export TRANSLATE_PROJECTS_API_KEY=tu_token
./gradlew translateProjects
Arquivos que são gerados
app/src/main/res/
├── values/strings.xml ← idioma base, não é modificado
├── values-en/strings.xml
├── values-pt-rBR/strings.xml ← pt-BR usa o formato do Android
└── values-fr/strings.xml
O name de cada texto é a sua chave no Translate Projects, então você pode revisar e editar as traduções no painel.
O que é respeitado
- Os placeholders (
%1$s,%d,%2$.2f) são mantidos intactos. pluralsestring-arraysão traduzidos item por item e mantêm a sua estrutura.- Os textos com
translatable="false"não são enviados nem copiados para os outros idiomas. - Apóstrofos e aspas são escapados como o Android exige (
\',\"), e o CDATA e o HTML básico (<b>,<i>,<u>) são preservados.
Cache
Uma segunda execução sem textos novos faz duas requisições e não traduz nada. Se alguém corrigir uma tradução no painel do Translate Projects, a próxima execução a baixa sem --force; suas edições manuais no arquivo continuam tendo prioridade. Mais detalhes em Cache e erros.
Erros comuns
- Falta o token: exporte
TRANSLATE_PROJECTS_API_KEYno mesmo terminal (ou como segredo no CI) antes de executar o Gradle. - Token inválido (
Token no válido): copie novamente o token do projeto. Osstrings.xmlexistentes não são alterados. O idioma de origem não é o padrão:sourceLangdeve ser o idioma padrão do projeto.- Falta a key de IA (
MISSING_API_KEY): configure o provedor, o modelo e a chave no projeto; os textos que faltam são tentados novamente na próxima execução. - Tradução parcial, erros 5xx ou de rede: os idiomas incompletos são solicitados novamente na próxima execução.
🚀 Automatize suas traduções de graça
Translate Projects é gratuito. Você cria seu projeto, conecta a chave do seu provedor de IA e paga apenas a ele pelo que gastar.
- Sem planos nem cartão de crédito: Todos os recursos estão disponíveis desde o primeiro dia.
- Use sua própria IA: Claude, OpenAI, DeepSeek ou Gemini. Sua chave é armazenada criptografada.
- Rede de traduções compartilhada: Se um texto já foi traduzido, você o recebe instantaneamente sem gastar sua chave.
- Painel de administração: Revise e edite todas as suas traduções em um único lugar.
Estamos aqui para ajudar você
Se você tiver alguma dúvida, precisar de ajuda ou quiser contribuir, não hesite em entrar em contato comigo. Estou à sua disposição para apoiá-lo no que precisar.
- Site: neiderruiz.com
- GitHub: @neiderruiz
- Twitter: @neiderruiz
- YouTube: Neider Ruiz
Apoie o Projeto
Se este projeto foi útil para você, convido você a me pagar um café. Seu apoio me ajuda a continuar melhorando e criando conteúdo de valor. Obrigado por estar aqui! ☕