O Translations Editor oferece uma visualização consolidada e editável de todos os seus recursos de string padrão e traduzidos.
Para ver uma introdução sobre como traduzir seu app para diferentes idiomas, leia Suporte a diferentes idiomas e culturas.
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, que é o idioma que você espera que a maioria dos usuários
fale. Também é possível ter arquivos strings.xml traduzidos que contêm
recursos de string para outros idiomas que você quer que o app use.
Depois de concluir o arquivo strings.xml padrão, você pode adicionar as
traduções por conta própria ou pagar um serviço profissional para fazer as traduções.
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
É possível acessar o Editor de traduções 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 Editor de traduções mostra os pares de chave-valor do arquivo
strings.xml.
A Figura 1 mostra o texto padrão do app (neste caso, em inglês) no Editor de traduções
antes do início do trabalho de tradução. O conteúdo dos
arquivos strings.xml traduzidos vai aparecer à direita da
coluna Untranslatable, com uma coluna por idioma, como mostrado na Figura 2.
Abrir a partir de strings.xml
É possível acessar o Editor de traduções 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, é possível selecionar Untranslatable para indicar que você não quer que o texto nessa linha seja traduzido. O texto que você não quer traduzir pode ser específico do produto, como nomes comerciais e marcas registradas, ou termos técnicos que não têm 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 de cima 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 tem suporte a BCP 47 e combina códigos de localidade e região (país) em uma única seleção para as localizações desejadas. Uma localidade define mais do que o idioma. Uma localidade inclui formatação dependente 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:
Para excluir um idioma no Translations Editor, exclua todos os valores da coluna (consulte Editar, adicionar e excluir texto) ou exclua a pasta do projeto para esse idioma, da seguinte maneira:
- No painel Project > Android à esquerda, selecione ModuleNameModuleName > res.
- Clique com o botão direito do mouse na pasta values-* do idioma que você quer excluir. Por exemplo, values-hi para hindi.
- Na lista, selecione Delete para excluir a pasta e o arquivo strings.xml.
Editar, adicionar e excluir texto
É possível operar nas configurações de texto diretamente no arquivo strings.xml ou
pelo Editor de traduções. Esta seção descreve a abordagem do Editor de
traduções. 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.
Visualização em 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 o teclado ou, se o teclado for compatível com marcas diacríticas, digite 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 Tradução, copie e cole usando o teclado ou, se o teclado for compatível com marcas diacríticas, digite diretamente no campo Tradução.
- 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 Editor de traduções, a coluna Key lista os identificadores exclusivos de
cada item de dados nos arquivos strings.xml. É possível adicionar e excluir chaves pelo
Translations Editor. Quando você exclui uma chave, o Editor de traduções exclui
ela e todas as traduções associadas. O Editor de traduções usa a refatoração de exclusão
segura para excluir uma chave. Assim, você sabe se o texto da chave é usado em outro lugar
e tem a chance de fazer os ajustes necessários antes de excluir a chave. A
refatoração de exclusão segura garante que o código ainda seja compilado depois que você excluir
a chave.
Para adicionar uma chave, faça o seguinte:
- No Editor de traduções, clique em Add Key
. Na caixa de diálogo, insira um nome de chave, um valor padrão e o local 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 Remover chaves
. Na caixa de diálogo Delete, decida se você quer uma exclusão segura e se quer pesquisar em comentários e strings. Em seguida, 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 Editor de Traduções vai mostrar a caixa de diálogo Usages Detected com informações sobre os problemas detectados.
Figura 5. Caixa de diálogo Usages Detected 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 são seguros para exclusão, para que você possa editar o código correspondente.
Figura 6. Usos não seguros Clique com o botão direito do mouse em um uso para exibir o menu de contexto e selecione Sequência 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 requeiram 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.
Para corrigir um erro, passe o cursor sobre o texto em vermelho para exibir uma explicação do problema e a resolução dele.
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 Editor de traduções
é atualizada com as mudanças.
Exemplo de correções do Translations Editor:
- A Figura 7 mostra que a linha app_name tem a opção Untranslatable marcada, mas há uma tradução em espanhol fornecida. 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 para a célula e corrigir o erro. Uma operação de copiar e colar do teclado copia o texto com qualquer marca diacrítica na célula.
Gerenciar e testar texto localizável
A plataforma Android e o Android Studio oferecem vários recursos para ajudar você 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 que você faça ajustes no texto e no layout da interface antes de confirmar as mensagens no repositório de origem que vão ser enviadas para tradução posteriormente.
Suporte a idiomas que usam escrita da direita para a esquerda (RTL, na sigla em inglês)
O Jetpack Compose processa layouts da direita para a esquerda (RTL, na sigla em inglês) 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 o recurso usando o arquivo de manifesto do app.
Para ativar o suporte a 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 lida com layout de texto, espelhamento e configurações personalizadas de RTL, consulte Como trabalhar com idiomas RTL.
Definir manualmente a direção do texto
No Jetpack Compose, você não usa uma janela visual de propriedades para forçar o layout ou as direções do 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, exibir uma string LTR em um layout RTL), transmita um
objeto TextDirection para o 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 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
Recursos no Compose.
Pseudolocalidades
Uma pseudolocalidade é uma localidade simulada que assume as características de idiomas que causam problemas de interface, layout, RTL e outros problemas 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 permite que você encontre mensagens não traduzíveis no código-fonte.
Para saber como usar pseudolocalidades, consulte Testar seu app com pseudolocalidades.