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
. O projeto
tem um arquivo strings.xml
padrão contendo 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
contendo 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, você poderá
aproveitar os recursos do Android Studio para gerenciar e testar
textos localizáveis. Para saber mais
sobre serviços de tradução profissional, consulte Solicitar 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.xml
traduzidos, o projeto tem várias pastas values correspondentes com sufixos indicando o idioma, como values-es para espanhol. O arquivostrings.xml
padrão sempre fica na pasta values (sem sufixo).
A Figura 1 mostra o texto padrão do app (nesse 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 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 a partir de 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.
Observação: se você clicar no link Hide notification, o link Open editor vai desaparecer. Para que ele volte a ser exibido, feche e reabra o projeto.
Abrir no Design Editor
Você pode abrir o Translations Editor no Design Editor do Layout Editor para editar o texto padrão e o traduzido para melhor se adaptarem ao layout. Para saber mais sobre como alternar idiomas no Design Editor, consulte Exibir texto traduzido no Design Editor.
- No painel Project > Android à esquerda, selecione ModuleName > res > layout.
- Clique duas vezes em content_main.xml para abrir o arquivo para edição.
- Clique na guia Design no canto inferior esquerdo para exibir o Design Editor.
- No Design Editor, selecione a lista suspensa Language .
- Selecione Edit Translations .
Configurar linhas não traduzíveis
No Translations Editor, você pode selecionar Unstranslatable 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ê marca 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 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. 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 ou excluir texto) ou pode excluir a pasta do projeto referente ao 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 suspensa, selecione Delete 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.
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 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 uma chave é excluída, 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 as mudanças necessárias 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.
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 Delete, decida se quer executar a refatoração "Safe Delete" e se quer pesquisar em comentários e strings. Depois, clique em OK.
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 exibirá a caixa de diálogo Usages Detected com informações sobre os problemas detectados.
- 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.
- Clique com o botão direito do mouse em um uso para exibir o menu de contexto e selecione Jump to Source para fazer as alterações 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,
espanhol
e francês. O texto em vermelho indica linhas com erros.
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ê mudar
um arquivo strings.xml
, a coluna correspondente no Translations Editor
será 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.
Exibir texto traduzido no Design Editor
Para ver como o texto traduzido será exibido no layout do app, alterne o texto entre as versões padrão e traduzida no Design Editor, da seguinte maneira:
- No painel Project > Android à esquerda, selecione ModuleNameModuleName > res > layout.
- Clique duas vezes em content_main.xml para abrir o arquivo para edição.
- Clique na guia Design no canto inferior esquerdo para exibir o Design Editor.
- No Design Editor, selecione a lista suspensa Language .
- Selecione Edit Translations .
- Selecione o idioma que você quer usar para ver o app.
O Design Editor exibe o layout do app no idioma selecionado, que nesse caso é o espanhol.
Configurar o Design Editor para o idioma padrão
Para restaurar o idioma para o padrão, selecione es > Language .
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 a abordar problemas com scripts da direita para a esquerda (RTL, na sigla em inglês), como árabe ou hebraico. Testar o texto localizável permite fazer mudanças no texto da IU e no layout antes de confirmar suas mensagens para o repositório de origem para serem enviadas para tradução posteriormente.
Refatorar seu projeto para compatibilidade com RTL
O Android Studio tem um comando de refatoração que oferece suporte a texto bidirecional
nos elementos TextView
,
ConstraintLayout
e
LinearLayout
. Isso permite
que os apps mostrem texto em scripts da esquerda para a direita (LTR, na sigla em inglês) e da direita para a esquerda (RTL, na sigla em inglês) e que os usuários editem
esses textos. O comando também oferece espelhamento automático de layouts da IU do app e de todos os widgets de
visualização. Para ver a mudança de direção do texto e o espelhamento de layout, você também precisa definir as
propriedades de direção de texto e layout
no Layout Editor.
O procedimento a seguir mostra como refatorar seu projeto para que seja compatível com RTL:
- Selecione Refactor > Add RTL support where possible para exibir a caixa de diálogo mostrada na
Figura 11.
- Se o elemento
<application>
no seu arquivoAndroidManifest.xml
não tiver o atributoandroid:supportsRTL="true"
, marque a caixa de seleção Update AndroidManifest.xml. - Se a
targetSdkVersion
do app for 17 ou mais recente, selecione Replace Left/Right Properties with Start/End Properties. Nesse caso, suas propriedades precisam usar "start" e "end", em vez de "left" e "right". Por exemplo,android:paddingLeft
passa a serandroid:paddingStart
. - Se a
targetSdkVersion
do app for 16 ou anterior, selecione Generate -v17 Versions. Nesse caso, o XML precisa usar os dois conjuntos de propriedades. Por exemplo, o XML precisa usarandroid:paddingLeft
eandroid:paddingStart
.
- Se o elemento
- Para abrir a janela Find Refactoring Preview clique em Run.
- Clique em Do Refactor.
Para saber mais sobre como refatorar seu projeto para suporte a RTL, consulte Suporte nativo a RTL no Android 4.2 (em inglês).
Propriedades de direção de texto e layout
A janela Properties, à direita, apresenta a propriedade textDirection, a ser usada com widgets de texto, e a propriedade layoutDirection, a ser usada com widgets de layout para mudar a direção dos componentes de texto e layout. As propriedades de direção estão listadas na janela Properties, à direita, e funcionam com API de nível 17 ou mais recente.
Para ver a mudança da direção do texto e o espelhamento de layout, você também precisa refatorar o projeto para que ele ofereça suporte ao modo RTL. Em inglês, a mudança de direção do texto move apenas a pontuação do lado direito para o lado esquerdo do texto. Por exemplo, "Hello World!" passa a ser "!Hello World". Para ver a mudança de texto de LTR para RTL, é necessário usar um idioma RTL no seu app. Se você quiser usar o inglês e ver a mudança do texto para RTL como um teste, use pseudolocalidades. Pseudolocalidades são independentes do comando de refatoração e das propriedades de direção.
Para acessar e usar as propriedades de direção, faça o seguinte:
- No Layout Editor, selecione um widget de texto.
- Abra a janela Properties e procure a propriedade RTL que você quer usar.
Para configurar o valor da propriedade, selecione um dos seguintes:
- firstStrong: padrão para a visualização raiz. O primeiro caractere direcional forte determina a direção do parágrafo. Se não houver um caractere direcional forte, a direção do parágrafo será a mesma do layout da visualização.
- anyRtl: a direção do parágrafo será RTL caso ele contenha um caractere RTL forte e será LTR caso contenha algum caractere LTR forte. Se não houver nenhum caractere forte, a direção do parágrafo será a mesma do layout definido da visualização.
- ltr: a direção do parágrafo é LTR.
- rtl: a direção do parágrafo é RTL.
- locale: a direção do parágrafo vem da localidade do sistema.
- inherit: padrão. Use a direção definida no pai.
- Para revisar o texto e o layout invertidos, execute o app.
Pseudolocalidades
Uma pseudolocalidade é uma localidade simulada, projetada para assumir as características de idiomas que causam problemas de IU, layout, RTL, entre 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 possibilita que você detecte mensagens não traduzíveis no código-fonte.
Para saber mais sobre como usar as pseudolocalidades, consulte Testar o app com pseudolocalidades.