SlideShare uma empresa Scribd logo
1 de 9
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.

Mais conteúdo relacionado

Semelhante a Internacionalizando Aplicativos Android

Android Core Aula 6 - Desenvolvimento de aplicações Android
Android Core Aula 6 -  Desenvolvimento de aplicações AndroidAndroid Core Aula 6 -  Desenvolvimento de aplicações Android
Android Core Aula 6 - Desenvolvimento de aplicações AndroidFelipe Silveira
 
Introdução a programação para plataforma iOS
Introdução a programação para plataforma iOSIntrodução a programação para plataforma iOS
Introdução a programação para plataforma iOSDevmedia
 
Tutorial Aplicação - Registo de dados
Tutorial Aplicação - Registo de dadosTutorial Aplicação - Registo de dados
Tutorial Aplicação - Registo de dadosProjetos AEB
 
Desenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma AndroidDesenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma AndroidJosé Alexandre Macedo
 
Como criar interfaces gráficas com android
Como criar interfaces gráficas com androidComo criar interfaces gráficas com android
Como criar interfaces gráficas com androidRicardo Ogliari
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidSidney Roberto
 
Introducao ao small basic
Introducao ao small basicIntroducao ao small basic
Introducao ao small basicGabriel Kois
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Erisvaldo Junior
 
Android e Facebook - Integrando sua aplicação às redes sociais
Android e Facebook - Integrando sua aplicação às redes sociaisAndroid e Facebook - Integrando sua aplicação às redes sociais
Android e Facebook - Integrando sua aplicação às redes sociaisFelipe Silveira
 
Phonegap - Framework Mobile
Phonegap - Framework MobilePhonegap - Framework Mobile
Phonegap - Framework MobileIldyone Martins
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para AndroidClaudio Pereira
 
Oficina de aplicativos
Oficina de aplicativosOficina de aplicativos
Oficina de aplicativoscdimobilidade
 
Oficina de aplicativos
Oficina de aplicativosOficina de aplicativos
Oficina de aplicativoscdimobilidade
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneHenrique Perticarati
 
Ionic Framework - Configuração do ambiente e a criação da primeira APP
Ionic Framework - Configuração do ambiente e a criação da primeira APPIonic Framework - Configuração do ambiente e a criação da primeira APP
Ionic Framework - Configuração do ambiente e a criação da primeira APPFabio Godoy
 

Semelhante a Internacionalizando Aplicativos Android (20)

Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao Android
 
Android Core Aula 6 - Desenvolvimento de aplicações Android
Android Core Aula 6 -  Desenvolvimento de aplicações AndroidAndroid Core Aula 6 -  Desenvolvimento de aplicações Android
Android Core Aula 6 - Desenvolvimento de aplicações Android
 
Introdução a programação para plataforma iOS
Introdução a programação para plataforma iOSIntrodução a programação para plataforma iOS
Introdução a programação para plataforma iOS
 
Tutorial Aplicação - Registo de dados
Tutorial Aplicação - Registo de dadosTutorial Aplicação - Registo de dados
Tutorial Aplicação - Registo de dados
 
Desenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma AndroidDesenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma Android
 
Como criar interfaces gráficas com android
Como criar interfaces gráficas com androidComo criar interfaces gráficas com android
Como criar interfaces gráficas com android
 
Android - Parte 8
Android - Parte 8Android - Parte 8
Android - Parte 8
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para Android
 
Introducao ao small basic
Introducao ao small basicIntroducao ao small basic
Introducao ao small basic
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3
 
Android e Facebook - Integrando sua aplicação às redes sociais
Android e Facebook - Integrando sua aplicação às redes sociaisAndroid e Facebook - Integrando sua aplicação às redes sociais
Android e Facebook - Integrando sua aplicação às redes sociais
 
Apostila Android
Apostila AndroidApostila Android
Apostila Android
 
Phonegap - Framework Mobile
Phonegap - Framework MobilePhonegap - Framework Mobile
Phonegap - Framework Mobile
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
 
Revista programar 23
Revista programar 23Revista programar 23
Revista programar 23
 
Oficina de aplicativos
Oficina de aplicativosOficina de aplicativos
Oficina de aplicativos
 
Oficina de aplicativos
Oficina de aplicativosOficina de aplicativos
Oficina de aplicativos
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
 
Ionic Framework - Configuração do ambiente e a criação da primeira APP
Ionic Framework - Configuração do ambiente e a criação da primeira APPIonic Framework - Configuração do ambiente e a criação da primeira APP
Ionic Framework - Configuração do ambiente e a criação da primeira APP
 
Workshop frontend
Workshop   frontendWorkshop   frontend
Workshop frontend
 

Mais de Ricardo Ogliari

Clean Code/Architecture com Android e Flutter
Clean Code/Architecture com Android e FlutterClean Code/Architecture com Android e Flutter
Clean Code/Architecture com Android e FlutterRicardo Ogliari
 
Mobile, Flutter e Mercado
Mobile, Flutter e MercadoMobile, Flutter e Mercado
Mobile, Flutter e MercadoRicardo Ogliari
 
Aula 1 view model livedata e databinding.pptx
Aula 1   view model livedata e databinding.pptxAula 1   view model livedata e databinding.pptx
Aula 1 view model livedata e databinding.pptxRicardo Ogliari
 
Programando em ruby para arduino
Programando em ruby para arduinoProgramando em ruby para arduino
Programando em ruby para arduinoRicardo Ogliari
 
Intel edison Primeiro Projeto
Intel edison Primeiro ProjetoIntel edison Primeiro Projeto
Intel edison Primeiro ProjetoRicardo Ogliari
 
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.Ricardo Ogliari
 
A hora de criar LBS para pequenos dispositivos é agora!!
A hora de criar LBS para pequenos dispositivos é agora!!A hora de criar LBS para pequenos dispositivos é agora!!
A hora de criar LBS para pequenos dispositivos é agora!!Ricardo Ogliari
 

Mais de Ricardo Ogliari (9)

IoT além do Arduino
IoT além do ArduinoIoT além do Arduino
IoT além do Arduino
 
Clean Code/Architecture com Android e Flutter
Clean Code/Architecture com Android e FlutterClean Code/Architecture com Android e Flutter
Clean Code/Architecture com Android e Flutter
 
Mobile, Flutter e Mercado
Mobile, Flutter e MercadoMobile, Flutter e Mercado
Mobile, Flutter e Mercado
 
Aula 1 view model livedata e databinding.pptx
Aula 1   view model livedata e databinding.pptxAula 1   view model livedata e databinding.pptx
Aula 1 view model livedata e databinding.pptx
 
Programando em ruby para arduino
Programando em ruby para arduinoProgramando em ruby para arduino
Programando em ruby para arduino
 
Intel edison Primeiro Projeto
Intel edison Primeiro ProjetoIntel edison Primeiro Projeto
Intel edison Primeiro Projeto
 
Bada
BadaBada
Bada
 
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.
Instalando e Configurando o JIL SDK. Crie seu primeiro widget com a ferramenta.
 
A hora de criar LBS para pequenos dispositivos é agora!!
A hora de criar LBS para pequenos dispositivos é agora!!A hora de criar LBS para pequenos dispositivos é agora!!
A hora de criar LBS para pequenos dispositivos é agora!!
 

Internacionalizando Aplicativos Android

  • 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:
  • 2. 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:
  • 3. 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.
  • 4. 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.
  • 5. 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.
  • 6. 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:
  • 7. 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.
  • 8. 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.
  • 9. • 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.