O Translations Editor oferece uma visualização consolidada e editável de todos os seus recursos de string padrão e traduzidos.
Para uma introdução sobre como traduzir seu app para diferentes idiomas, leia Suporte a diferentes idiomas e culturas.
Figura 1. O Translations Editor mostrando o texto do app antes da tradução.
Recursos de string
Os recursos de string de um projeto estão contidos em arquivos strings.xml. Seu
projeto tem um arquivo strings.xml padrão que contém recursos de string no
idioma padrão do app, ou seja, aquele que você espera que a maioria dos usuários
fale. Você também pode ter arquivos strings.xml traduzidos que contenham
recursos de string para outros idiomas que você quer incluir no seu app.
Depois de concluir o arquivo strings.xml padrão, você poderá adicionar as
traduções por conta própria ou pagar um serviço profissional para fazê-las.
De qualquer forma, aproveite os recursos do Android Studio para ajudar você a
gerenciar e testar textos localizáveis. Para informações sobre
serviços de tradução profissional, consulte Serviços de tradução.
Abrir o Translations Editor
Você pode acessar o Translations Editor nos seguintes locais do Android Studio.
Abrir a partir da visualização Android
- No painel Project > Android à esquerda, selecione ModuleName > res > values.
- Clique com o botão direito do mouse no arquivo strings.xml e selecione Open Translations Editor.
O Translations Editor exibe os pares de chave-valor do arquivo
strings.xml.Observação: quando você tem arquivos
strings.xmltraduzidos, o projeto tem várias pastas values correspondentes com sufixos indicando o idioma, como values-es para espanhol. O arquivostrings.xmlpadrão sempre fica na pasta values (sem sufixo).
A Figura 1 mostra o texto padrão do app (neste caso, em inglês) no Translations
Editor para um app simples antes do trabalho de tradução. O conteúdo dos arquivos
strings.xml traduzidos vai aparecer à direita da coluna
Untranslatable, com uma coluna por idioma, conforme mostrado na figura 2.
Abrir a partir de strings.xml
Você pode acessar o Translations Editor em qualquer um dos seus arquivos strings.xml.
- No painel Project > Android à esquerda, selecione ModuleName > res > values.
- Clique duas vezes em strings.xml para abrir o arquivo para edição.
- Em strings.xml, clique no link Open editor no canto superior direito.
Configurar linhas não traduzíveis
No Translations Editor, você pode selecionar Untranslatable para indicar que não quer que o texto da linha em questão seja traduzido. O texto que você não quer traduzir pode se referir a textos específicos do produto, como nomes comerciais e marcas registradas, ou termos técnicos que não tenham tradução.
Quando você seleciona Untranslatable, a linha correspondente no arquivo
strings.xml padrão adiciona translatable="false". No exemplo a seguir,
EasyApp na linha superior não é traduzido porque é o nome do produto.
<resources>
<string name="app_name" translatable="false">EasyApp</string>
<string name="action_settings">Settings</string>
<string name="easy_app">I am a Simple App!</string>
<string name="next_page">Next Page</string>
<string name="second_page_message">I am the Second Page!</string>
<string name="title_activity_second">SecondActivity</string>
</resources>
Adicionar e excluir idiomas
O Translations Editor é compatível com BCP 47 e combina códigos de localidade e região (país) em uma única seleção para localizações específicas. Uma localidade define mais do que o idioma. Ela inclui a formatação específica do país para itens como data e hora, moedas e decimais.
Para adicionar um idioma, faça o seguinte:
- No Translations Editor, clique no ícone de globo
. - Na lista suspensa, selecione o idioma que você quer adicionar. O novo idioma aparece no Translations Editor, e uma pasta values-* com um arquivo `strings.xml` é adicionada ao projeto. Por exemplo, values-es para espanhol.
Para excluir um idioma, faça o seguinte:
Você pode excluir um idioma no Translations Editor excluindo todos os valores da coluna (consulte Editar, adicionar e excluir texto) ou pode excluir a pasta do projeto referente a esse idioma, da seguinte maneira:
- No painel Project > Android à esquerda, selecione ModuleNameModuleName > res.
- Clique com o botão direito na pasta values-* do idioma que você quer excluir. Por exemplo, values-hi para hindi.
- Na lista, selecione Excluir para excluir a pasta e o respectivo arquivo strings.xml.
Editar, adicionar e excluir texto
Você pode editar as configurações de texto diretamente no arquivo strings.xml ou
com o Translations Editor. Esta seção descreve a abordagem do Translations
Editor. No Translations Editor, é possível editar, adicionar ou excluir
textos na visualização em lista ou no campo Translation na parte de baixo
do Translations Editor.
Figura 2. Visualização em lista na parte de cima e o campo Tradução na parte de baixo
Visualização de lista
Para editar ou adicionar texto, faça o seguinte:
- Clique duas vezes na célula em que você quer adicionar texto ou editar.
- Copie e cole usando os atalhos de teclado ou, se você tem um teclado compatível com diacríticos (sinais gráficos e de acentuação), digite o texto diretamente na visualização em lista.
- Use a tecla Tab ou mova o cursor para fora do campo.
Para excluir texto, faça o seguinte:
- Clique duas vezes na célula que você quer excluir.
- Na visualização em lista, selecione o texto e pressione Delete.
- Use a tecla Tab ou mova o cursor para fora do campo.
Campo "Translation"
Para editar ou adicionar texto, faça o seguinte:
- Na visualização em lista, clique uma vez na célula em que você quer adicionar texto ou editar.
- No campo Translation, copie e cole usando os atalhos de teclado ou, se você tem um teclado compatível com diacríticos (sinais gráficos e de acentuação), digite o texto diretamente no campo Translation.
- Use a tecla Tab ou mova o cursor para fora do campo.
Para excluir texto, faça o seguinte:
- Clique uma vez na célula que você quer excluir.
- No campo Translation, selecione o texto e pressione Delete.
Adicionar e excluir chaves
No Translations Editor, a coluna Key lista os identificadores exclusivos de
cada item de dados nos arquivos strings.xml. Você pode adicionar e excluir chaves usando
o Translations Editor. Quando você exclui uma chave, o Translations Editor também exclui a chave e todas as traduções associadas. O Translations Editor usa a refatoração Safe
Delete para excluir uma chave, para que você saiba se o texto da chave é usado em outro local
e possa fazer os ajustes necessários antes de excluí-la. A refatoração "Safe Delete" garante que o código ainda seja compilado depois que a chave for excluída.
Para adicionar uma chave, faça o seguinte:
- No Translations Editor, clique em Add Key
. - Na caixa de diálogo, digite um nome de chave, o valor padrão e a localização do
arquivo strings.xml padrão.

Figura 3. Adicionar uma chave.
Para excluir uma chave, faça o seguinte:
- No Translations Editor, selecione a chave que você quer excluir.
- Clique em Remove Keys
. - Na caixa de diálogo Excluir, decida se quer uma exclusão segura e se quer pesquisar em comentários e strings. Depois, clique em OK.

Figura 4. Caixa de diálogo "Delete".
Se não houver referências (usos) à chave excluída ou se todas as referências puderem ser recolhidas com segurança, a chave será excluída. Caso contrário, o Translations Editor vai mostrar a caixa de diálogo Usages Detected com informações sobre os problemas detectados.
Figura 5. Caixa de diálogo "Delete".
- Selecione View Usages para revisar o que será excluído. A caixa de diálogo Find Safe Delete
Conflicts mostra todos os usos que não podem ser excluídos com segurança, para
que você possa editar o código correspondente.

Figura 6. Usos inseguros.
- Clique com o botão direito do mouse em um uso para exibir o menu de contexto e selecione Ir para a origem para fazer as mudanças necessárias.
- No painel Find Safe Delete Conflicts, selecione Rerun Safe Delete para garantir que não haja outros usos que precisem de atenção.
- Quando os usos forem apagados, clique em Do Refactor para excluir a chave.
Corrigir erros
A Figura 7 mostra o Translations Editor exibindo o conteúdo dos arquivos strings.xml em inglês, francês e espanhol. O texto em vermelho indica linhas
com erros.
Figura 7. O texto em vermelho indica um erro que precisa ser corrigido.
Para corrigir um erro, passe o mouse sobre o texto em vermelho para exibir uma explicação do problema e a respectiva resolução.
Ao fazer mudanças no Translations Editor, os arquivos
strings.xml subjacentes serão atualizados com essas mudanças. Quando você faz mudanças em um
arquivo strings.xml, a coluna correspondente no Translations Editor
é atualizada.
Exemplo de correções do Translations Editor:
- A figura 7 mostra que a linha app_name está com a opção Untranslatable marcada, mas há uma tradução em espanhol disponível. Exclua a tradução em espanhol para corrigir o erro.
- A figura 7 mostra que a linha next_page está sem tradução em francês. Use o teclado para copiar Page Suivante na célula para corrigir o erro. Uma operação de copiar e colar no teclado copia o texto com os diacríticos para a célula.
Gerenciar e testar texto localizável
A plataforma Android e o Android Studio oferecem vários recursos para ajudar a gerenciar e testar o texto localizável do app. Esses recursos têm opções para ajudar você a resolver problemas com scripts da direita para a esquerda (RTL), como árabe ou hebraico. Testar o texto localizável permite fazer ajustes no texto da interface e no layout antes de confirmar as mensagens no repositório de origem para serem enviadas para tradução posteriormente.
Suporte a idiomas RTL
O Jetpack Compose processa layouts da direita para a esquerda (RTL) de forma nativa. Os modificadores de layout
e as APIs são criados com base em conceitos direcionais, como start e end, em vez de direções absolutas, como left e right. Quando o idioma do sistema
muda para uma localidade RTL, o Compose espelha automaticamente esses layouts para você.
Para que o app reconheça a localidade RTL e acione esse espelhamento, é necessário ativar a opção usando o arquivo de manifesto do app.
Para ativar a compatibilidade com RTL, faça o seguinte:
- Abra o arquivo
AndroidManifest.xml. - Adicione o atributo
android:supportsRtl="true"ao elemento<application>:
<manifest ... >
<application
...
android:supportsRtl="true">
</application>
</manifest>
Para saber mais sobre como o Compose processa layout de texto, espelhamento e configurações personalizadas de RTL, consulte Trabalhar com idiomas RTL.
Definir manualmente a orientação do texto
No Jetpack Compose, não é usada uma janela de propriedades visuais para forçar o layout ou direções de texto. O Compose processa automaticamente o espelhamento RTL com base na localidade do sistema.
No entanto, se você precisar substituir manualmente a direção de um elemento de texto específico (por exemplo, mostrar uma string LTR em um layout RTL), transmita um objeto TextDirection para seu TextStyle.
Os valores aceitos são:
TextDirection.Content: (Default): infere a direção do primeiro caractere direcional forte.TextDirection.Ltr: força a direção da esquerda para a direita.TextDirection.Rtl: força a direção da direita para a esquerda.
Para saber mais sobre como estilizar texto e configurar direções de texto manuais no Compose, consulte Estilizar texto.
Usar strings localizadas no seu app
Depois de adicionar e traduzir as strings usando o Translations Editor,
os arquivos res/values/strings.xml subjacentes são atualizados automaticamente, e você
pode usar os recursos localizados diretamente na interface.
Para saber como mostrar texto localizado, processar RTL de forma nativa e usar @Preview
para testar diferentes localidades e pseudolocalidades, consulte a seção "Strings" de
"Resources in Compose".
Pseudolocalidades
Uma pseudolocalidade é uma localidade simulada, projetada para assumir as características de idiomas que causam problemas de IU, layout, RTL e outros de tradução quando um app é traduzido. As pseudolocalidades oferecem traduções instantâneas e automáticas que podem ser lidas em inglês para todas as mensagens localizáveis. Isso possibilita que você detecte mensagens não traduzíveis no código-fonte.
Para saber como usar pseudolocalidades, consulte Testar seu app com pseudolocalidades.