Internacionalizando Aplicativos Android

Page 1

Internacionalizando Aplicativos Android • Introdução Cada vez mais a internacionalização de nossos aplicativos móveis se faz necessária. Um bom motivo para isso pode ser a proliferação das lojas virtuais. Android, iPhone, Nokia (Symbian) e RIM, as principais plataformas existente hoje, tem suas lojas, que são acessadas de qualquer parte do mundo. Além disso, a falta de suporte por parte das plataformas já não é mais um empecilho para isso. Um bom exemplo é a diferença entre o Java ME presente nos telefones celulares mais comuns e o Java ME presente nos aparelhos BlackBerry. Este último já fornece API´s que facilitam e muito o processo de internacionalização de uma aplicação. Mas neste artigo vamos mostrar como desenvolver uma aplicação em Android, que pode ser visualizada em diferentes idiomas. Nosso aplicativo será bem simples, visto que, o objetivo deste artigo não é construção de interfaces, mas sim a internacionalização.

• 1° Passo: Criar Projeto Vamos criar um projeto bem simples, apenas uma tela de formulário, onde o usuário insere seu nome e endereço. Navegue para File->new->Android Project no Eclipse. Veja na Figura 1 os valores necessários:


Figura 1: Criando projeto CadastroInternacional.

• 2° Passo: Editar main.xml e strings.xml Vamos definir nossa interface mo arquivo main.xml. Edite-e conforme mostra a Listagem 1:


Listagem 1: <?xml version="1.0" encoding="utf-8"?> <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" > <TableRow> <TextView android:text="@string/nome" android:layout_width="100px" /> <EditText android:id="@+id/EditText01" android:layout_width="200px" /> </TableRow> <TableRow> <TextView android:text="@string/endereco"/> <EditText android:id="@+id/EditText02" /> </TableRow> <TableRow> <TextView /> <Button android:id="@+id/Button01" android:text="@string/enviar" /> </TableRow> </TableLayout>

Utilizamos o gerenciador TableLayout para dar o formato da Figura 2 a nossa aplicação:

Figura 2: Interface do projeto CadastroInternacional.


Perceba que tanto o rótulo da caixa de texto de nome e endereço, como o rótulo do botão enviar, estão usando o formato @string/. Isso quer dizer que os textos para estes componentes estão no strings.xml, localizado em res/values. Logo, o próximo passo é editar justamente o arquivo de strings. Edite-o conforme a Listagem 2: Listagem 2: <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, CadastroInternacional!</string> <string name="app_name">CadastroInternacional</string> <string name="nome">Nome:</string> <string name="endereco">Endereço:</string> <string name="enviar">Enviar:</string> </resources>

Até agora não vimos absolutamente nada de internacionalização, assim, qualquer que seja a linguagem e localização do aparelho Android, os textos configurados no strings.xml serão usados como rótulos dos componentes de interface. Porém, vamos começar a mudar esta história agora.

• 3° Passo: Internacionalizando Se os rótulos dos componentes são buscados no strings.xml, é lógico que devemos ter mais arquivos xml correspondentes a outras línguas, as quais queremos internacionalizar o aplicativo. Vamos definir apenas duas: inglês e espanhol. Navegue para File->new->Android XML File. Ou ainda, clique na imagem mostrada circulada na Figura 3.

Figura 3: Novo arquivo XML do android.


Independente do caminho utilizado, o vamos receber o wizard mostrado na Figura 4:

Figura 4: Wizard.

Perceba que logo ao lado do Language existe um botĂŁo ->. Clique no mesmo. Seu wizard ganharĂĄ um novo campo, veja na Figura 5:

Figura 5: Escolha da linguagem.


Com o campo language em mãos, devemos definir a linguagem que o xml vai trabalhar. Digite es e dê Ok na parte inferior do wizard. Veja como ficou nossa estrutura de projeto no Eclipse:

Figura 5: Estrutura do Projeto.

Faça o mesmo para o inglês (se código é en). Em outras plataformas, ainda deveríamos codificar algumas coisas para que os componentes entendessem que devem buscar os textos de uma fonte dependente de idioma. Porém, nesse ponto (e em outros também) o Android é muito poderoso. Nossa aplicação simplesmente já está internacionalizada, não precisamos fazer mais nada. Execute novamente o aplicativo e verás a interface mostrada na Figura 6:

Figura 6: Aplicativo rodando em aparelho com localidade en.

No caso do meu emulador, ele já estava configurado com localidade em, sendo assim ele já modificou os rótulos dos componentes. Porém, vamos modificar a localidade do aparelho para o Japão. Para fazer isso vá até a tela dos aplicativos do Android e selecione CustomLocale:


Figura 7: CustomLocale.

Teremos que clicar e segurar por alguns segundos o item da lista para que um diálogo peça a confirmação de mudança de idioma para o japonês. Depois disso reinicie a nossa aplicação e, surpresa, vemos o idioma português, porque? Isso acontece porque configuramos o português como o idioma padrão, se o Android não encontra um values-idioma referente aquele sendo usado pelo aparelho, ele utiliza o values/strings.xml. Agora altere a localidade para o espanhol e veremos o aplicativo desta forma:

Figura 8: Aplicativo em espanhol.


Antes que o leitor ache que acabamos por aqui, volte para a Figura 7. Perceba que existe o de para definir que a localidade do aparelho é a Alemanha. Mas oque será o de_AT, de_CH e de_DE. Nesses casos podemos especificar a localidade e língua utilizada pelo aparelho. Por exemplo, es_EN quer dizer que o aparelho está na Espanha mas o idioma usado deve ser o inglês. Esse comportamento também pode ser criado na internacionalização de nossos aplicativos. Copie a pasta values-en, cole na pasta res e mude o nome para values-es-rEN, de forma que a estrutura de seus diretórios fique igual a Figura 9:

Figura 9: Nova estrutura de diretórios.

Agora altere a localização e idioma do aparelho para es_EN. No meu caso tive que adicionar este novo local:

Quando o aplicativo for novamente executado estará no idioma inglês. Para finalizar, volte a configuração de localidade somente para es e execute o aplicativo, verás os textos em idioma espanhol novamente.


• Conclusão Das plataformas móveis que já trabalhei mais profundamente (BlackBerry, Java ME), Android tem o melhor framework para internacionalização, chega a ser impressionante a facilidade como podemos exportar nossa uma aplicação para diferentes idiomas.

• Sobre Mim Meu nome é Ricardo da Silva Ogliari, sou graduado em Ciência da Computação pela Universidade de Passo Fundo. Atualmente também estou cursando uma pós-graduação em web, estratégias de inovação e tecnologia, no Senac SP. Trabalho com mobile a 6 anos, escrevo artigos para algumas revistas nacionais especializadas. Sou criador e mantenedor do http://www.mobilidadetudo.com e sou um dos membros do www.javamovel.com. Palestrei em eventos nacionais e internacionais, como o FISL e o JustJava, além de ter dezenas de artigos meus espalhados pelo mundão da internet.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.