Localizar a IU com o Translations Editor

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.

O Editor de traduções mostrando o texto do app antes da tradução.
Figura 1. 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, 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

  1. No painel Project > Android à esquerda, selecione ModuleName > res > values.
  2. 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.

  1. No painel Project > Android à esquerda, selecione ModuleName > res > values.
  2. Clique duas vezes em strings.xml para abrir o arquivo para edição.
  3. 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:

  1. No Translations Editor, clique no ícone de globo .
  2. 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:

  1. No painel Project > Android à esquerda, selecione ModuleNameModuleName > res.
  2. Clique com o botão direito do mouse na pasta values-* do idioma que você quer excluir. Por exemplo, values-hi para hindi.
  3. 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 na parte de cima e o campo &quot;Tradução&quot; na parte de baixo.
Figura 2. Visualização em lista na parte de cima e o campo Tradução na parte de baixo

Visualização em lista

Para editar ou adicionar texto, faça o seguinte:

  1. Clique duas vezes na célula em que você quer adicionar texto ou editar.
  2. Copie e cole usando o teclado ou, se o teclado for compatível com marcas diacríticas, digite diretamente na visualização em lista.
  3. Use a tecla Tab ou mova o cursor para fora do campo.

Para excluir texto, faça o seguinte:

  1. Clique duas vezes na célula que você quer excluir.
  2. Na visualização em lista, selecione o texto e pressione Delete.
  3. Use a tecla Tab ou mova o cursor para fora do campo.

Campo "Translation"

Para editar ou adicionar texto, faça o seguinte:

  1. Na visualização em lista, clique uma vez na célula em que você quer adicionar texto ou editar.
  2. 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.
  3. Use a tecla Tab ou mova o cursor para fora do campo.

Para excluir texto, faça o seguinte:

  1. Clique uma vez na célula que você quer excluir.
  2. 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:

  1. No Editor de traduções, clique em Add Key .
  2. Na caixa de diálogo, insira um nome de chave, um valor padrão e o local do arquivo strings.xml padrão.

    Caixa de diálogo &quot;Add key&quot; no Editor de traduções.
    Figura 3. Adicionar uma chave

Para excluir uma chave, faça o seguinte:

  1. No Translations Editor, selecione a chave que você quer excluir.
  2. Clique em Remover chaves .
  3. 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.

    Caixa de diálogo para excluir chave no Editor de traduções.
    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.

    Caixa de diálogo &quot;Usages Detected&quot; no Editor de traduções.
    Figura 5. Caixa de diálogo Usages Detected
  4. 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.

    Caixa de diálogo &quot;Find Safe Delete Conflicts&quot; mostrando usos não seguros.
    Figura 6. Usos não seguros
  5. 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.

  6. No painel Find Safe Delete Conflicts, selecione Rerun Safe Delete para garantir que não haja outros usos que requeiram atenção.

  7. 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.

Editor de traduções mostrando erros em texto vermelho.
Figura 7. O texto em vermelho indica uma condição de erro que você precisa corrigir

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:

  1. Abra o arquivo AndroidManifest.xml.
  2. 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:

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.

Outros recursos

Visualiza conteúdo