Localização – Como traduzir um aplicativo Android

A tarefa de implementar a tradução de um aplicativo Android é bem simples de ser implementada, bastando criar os arquivos de recursos para cada língua a ser utilizada, e posteriormente o próprio Android se encarrega de apresentar a tradução correta.

Este artigo cobre o processo de criar os arquivos de recursos e a forma de se forçar a apresentação em um determinado idioma caso desejado. Preparei o exemplo com três idiomas, ingles, espanhol e português. Todos os passos apresentados foram realizados utilizando-se o Android Studio.

Ao iniciar um novo projeto no Android Studio, voce terá uma estrutura como esta ao lado, contendo um diretório /res/values  e dentro dele um arquivo strings.xml. Neste arquivo voce deve colocar todos os textos a serem utilizados em seus layouts de forma que eles fiquem centralizados em um único ponto, facilitando a tradução e organização.
localization_1

 

Crie dentro do diretório /res, uma pasta chamada values-en e dentro dela crie um arquivo chamado strings.xml. Depois crie outra pasta dentro do diretório /res chamada values-es e dentro desta crie um arquivo chamado strings.xml, de forma a ter uma estrutura como a da figura ao lado.

localization_2

 

O arquivo /values/strings.xml deverá conter os os textos no idioma padrão do app (em nosso caso o português)

Edite o arquivo de /values-es/strings.xml e insira a tradução para espanhol

E finalmente edite o arquivo de /values-en/strings.xml e coloque a tradução para inglês

O Android Studio possui uma ferramenta para ajudar na tradução dos textos. Para usá-la clique com o botao direito do mouse sobre qualquer um dos arquivos strings.xml e selecione a opção Open Translation Editor

localization_3

 

E uma tela como essa irá aparecer mostrando cada texto e a atual tradução para cada um. Neste ponto basta cadastrar as traduções para cada idioma. Esta funcionalidade é extremamente útil na medida em que permite visualizar em um único local todas as traduções para cada chave.

localization_4

Agora vamos fazer uma activity para mostrar um TextView contendo o valor da chave “ola_mundo”.

O Android Studio já criou um layout chamado activity_main.xml. Ajuste o conteúdo dele para:

E criou também a classe correspondente.

Desta forma, caso seu dispositivo esteja configurado para o idioma inglês, este resultado será apresentado:

localization_5

Ou, caso esteja configurado para o idioma espanhol esta tela será apresentada:

localization_6

Desta forma, dependendo de qual seja a configuração do usuário o idioma correspondente será utilizado. Caso não exista uma tradução específica para o idioma do usuário, o idioma padrão será utilizado. Em nosso caso, por exemplo caso o usuário tenha como idioma o francês, não estamos propiciando uma tradução para esta língua, então a tradução existente no folder /res/values  (neste caso o português) será utilizado para fornecer os textos.

Além disso, você também pode disponibilizar dentro de sua aplicação a funcionalidade de deixar o usuário escolher o idioma desejado, permitindo que, mesmo estando em outra configuração, o aplicativo seja apresentado em outro idioma. Isso pode ser feito através desta pequena função que irá alterar o idioma de seu app:

E para chamá-lo basta passar o idioma desejado

Lembre-se que essa alteração não é definitiva, ou seja, ao sair do App e entrar novamente, o idioma do dispositivo voltará a ser utilizado. Sendo assim, caso queira manter sempre o idioma selecionado pelo usuário, você terá que armazenar a preferência de idioma dele e sempre que iniciar o App chamar a função acima.

Para testar em um emulador, você pode alterar o idioma deste da seguinte forma:

Passo 1
Inicie o emulador
Passo 2
Execute

adb shell

ou

adb -e shell caso tenha também conectado um dispositivo

Passo 3
Quando o prompt aparecer execute o comando

setprop persist.sys.language [langcode];setprop persist.sys.country [ccode];stop;sleep 5;start

substituindo o [langcode] pelo código do idioma e o [ccode] pelo código do pais

ex.

setprop persist.sys.language es;setprop persist.sys.country ES;stop;sleep 5;start

que mudará o idioma para espanhol e o pais para Espanha

 

oleonardomachado

Software architect with expertise in Microsoft technologies (C#, WCF, Azure etc) and now developing for mobile

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios são marcados com *