SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
Android
Introdução à programação para dispositivos
móveis com o Android SDK
Parte 8 – Internacionalização
Prof. Manuel F. Paradela Ledón, 2011.
Universidade Cruzeiro do Sul
Internacionalização
Frequentemente necessitamos elaborar um aplicativo com versões em vários idiomas
(multilíngue) ou até para países, regiões ou costumes específicas, para que o
universo de usuários potenciais seja maior e nosso programa atenda determinadas
especificações.
A tecnologia Android fornece alguns recursos especiais para garantir esse objetivo.
Neste material breve apresentaremos duas abordagens para preparar uma versão
“internacionalizada” de nosso aplicativo:
• Pastas de arquivos de figuras e de textos diferentes para cada idioma.
• Detecção do idioma ou país utilizado no dispositivo, utilizando métodos
adequados na lógica de nosso programa, para personalizar mensagens, textos e
até estratégias ou critérios específicos da aplicação para as diferentes línguas,
regiões ou países.
Pastas de arquivos de figuras e de textos diferentes para
cada idioma
Observe neste exemplo que criamos três pastas
para figuras (drawable, drawable-es, drawable-pt),
sendo drawable-es a pasta para idioma espanhol,
drawable-pt para português e drawable para
qualquer outro idioma (pasta default). Por exemplo,
uma mesma figura no arquivo cidade.png repetida
dentro destas três pastas poderia ter textos
específicos em cada língua (escola, escuela,
school). Caso a configuração no aparelho esteja em
outra língua que não seja espanhol ou português, a
figura utilizada será cidade.png da pasta drawable.
Para textos multilíngues preparamos quatro pastas
(values, values-es, values-it, values-pt) com o
arquivo específico com a tradução em cada uma das
línguas previstas. Novamente, a pasta value será a
utilizada (default) caso o idioma não seja italiano,
espanhol ou português.
Arquivos de textos diferentes para cada idioma
Os conteúdos dos arquivos strings.xml nos quarto idiomas considerados:
<resources>
<string name="app_name">Teste1</string>
<string name="hello_world">Hello world!</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">Example</string>
</resources>
<resources>
<string name="app_name">Teste1</string>
<string name="hello_world">¡Hola señores!</string>
<string name="menu_settings">Configuraciones</string>
<string name="title_activity_main">Ejemplo</string>
</resources>
<resources>
<string name="app_name">Teste1</string>
<string name="hello_world">Olá pessoal! Tudo bem?</string>
<string name="menu_settings">Configurações</string>
<string name="title_activity_main">Exemplo</string>
</resources>
<resources>
<string name="app_name">Teste1</string>
<string name="hello_world">Buongiorno ragazzi!</string>
<string name="menu_settings">Instrumenti</string>
<string name="title_activity_main"> Esempio</string>
</resources>
O arquivo XML de uma tela (Activity) multilíngue
Neste exemplo de arquivo XML utilizamos referências a ic_launcher e hello_world.
Android utilizará automaticamente a figura ic_launcher.png da pasta da língua correta
e, também, o texto dentro do arquivo strings.xml, dependendo do idioma configurado
no aparelho (por exemplo, <string name="hello_world">¡Hola señores!</string> para espanhol).
<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent" >
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="65dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageButton1"
android:text="@string/hello_world"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
Convenção para países e idiomas
Em ocasiões será necessário saber o idioma e o país selecionados no aparelho
Android para que o programa efetue algumas ações adicionais. Duas normas ISO
estabelecem códigos de duas letras para identificar cada idioma e cada país:
Os códigos de idioma são duas letras minúsculas, como definidas em ISO_639. Os
códigos de países são duas letras maiúsculas, como definidas em ISO_3166-1.
Veja mais informação em http://developer.android.com/reference/java/util/Locale.html
Assim, por exemplo, as duas letras minúsculas "en" especificam idioma inglês, "es"
idioma espanhol e "pt" português.
Os códigos de letras de países (duas letras maiúsculas) permitem identificar, por
exemplo, Inglaterra como "GB", Espanha como "ES" e Portugal e Brasil pelas siglas
"PT" e "BR".
Detectando o país e o idioma no programa Android
import java.util.Locale; //Importamos a public final class Locale
…
int idioma=1;
String moeda="$";
Locale loc = Locale.getDefault();
String country = loc.getCountry();
String language = loc.getLanguage();
if(language.equalsIgnoreCase("en")) { //English
idioma = 1;
if(country.equalsIgnoreCase("GB")) moeda = "£";
}
if(language.equalsIgnoreCase("es")) { //Español
idioma = 2;
if(country.equalsIgnoreCase("ES")) moeda = "€";
}
if(language.equalsIgnoreCase("pt")) { // Português
idioma = 3;
if(country.equalsIgnoreCase("BR")) moeda = "R$";
if(country.equalsIgnoreCase("PT")) moeda = "€";
}
Bibliografia sugerida
ANDROID. Android Developers.
Disponível em http://developer.android.com
ANDROID. Localization.
http://developer.android.com/guide/topics/resources/localization.html
http://developer.android.com/reference/java/util/Locale.html
ANDROID. Supporting Different Languages.
http://developer.android.com/training/basics/supportingdevices/languages.html
LECHETA, RICARDO R. Google Android, Aprenda a criar aplicações para
dispositivos móveis com o Android SDK.
São Paulo: Novatec, 2010.
MEDNIEKS, Z. et. al. Desenvolvimento de Aplicações Android.
São Paulo: Novatec, 2009.

Contenu connexe

En vedette

Introdução a programação em Android
Introdução a programação em AndroidIntrodução a programação em Android
Introdução a programação em AndroidPedro Veloso
 
Pesl introducao a programacao para android
Pesl   introducao a programacao para androidPesl   introducao a programacao para android
Pesl introducao a programacao para androidRegis Claus
 
Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012guisester
 
Aula 1- Fundamentos da computação móvel
Aula 1- Fundamentos da computação móvelAula 1- Fundamentos da computação móvel
Aula 1- Fundamentos da computação móvelJanynne Gomes
 
Aula - Arquiteturas de aplicações móveis
Aula - Arquiteturas de aplicações móveisAula - Arquiteturas de aplicações móveis
Aula - Arquiteturas de aplicações móveisJanynne Gomes
 
Aula: Resources ( Parte 2)
Aula: Resources ( Parte 2)Aula: Resources ( Parte 2)
Aula: Resources ( Parte 2)Janynne Gomes
 
Aula01 mobilidade android
Aula01 mobilidade androidAula01 mobilidade android
Aula01 mobilidade androidRoberson Alves
 
Aplicativo móvel em Android para monitoramento de rotas dos usuários de trans...
Aplicativo móvel em Android para monitoramento de rotas dos usuários de trans...Aplicativo móvel em Android para monitoramento de rotas dos usuários de trans...
Aplicativo móvel em Android para monitoramento de rotas dos usuários de trans...Jaffer Veronezi
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma AndroidNatanael Fonseca
 
Aula: Características dos dispositivos móveis
Aula: Características dos dispositivos móveisAula: Características dos dispositivos móveis
Aula: Características dos dispositivos móveisJanynne Gomes
 

En vedette (15)

Introdução a programação em Android
Introdução a programação em AndroidIntrodução a programação em Android
Introdução a programação em Android
 
Pesl introducao a programacao para android
Pesl   introducao a programacao para androidPesl   introducao a programacao para android
Pesl introducao a programacao para android
 
Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012
 
Aula 1- Fundamentos da computação móvel
Aula 1- Fundamentos da computação móvelAula 1- Fundamentos da computação móvel
Aula 1- Fundamentos da computação móvel
 
Aula - Arquiteturas de aplicações móveis
Aula - Arquiteturas de aplicações móveisAula - Arquiteturas de aplicações móveis
Aula - Arquiteturas de aplicações móveis
 
Android - Além do HelloWord
Android - Além do HelloWordAndroid - Além do HelloWord
Android - Além do HelloWord
 
Aula: Resources ( Parte 2)
Aula: Resources ( Parte 2)Aula: Resources ( Parte 2)
Aula: Resources ( Parte 2)
 
Aula01 mobilidade android
Aula01 mobilidade androidAula01 mobilidade android
Aula01 mobilidade android
 
Aplicativo móvel em Android para monitoramento de rotas dos usuários de trans...
Aplicativo móvel em Android para monitoramento de rotas dos usuários de trans...Aplicativo móvel em Android para monitoramento de rotas dos usuários de trans...
Aplicativo móvel em Android para monitoramento de rotas dos usuários de trans...
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
 
Aula: Características dos dispositivos móveis
Aula: Características dos dispositivos móveisAula: Características dos dispositivos móveis
Aula: Características dos dispositivos móveis
 
Aula android 01.pdf
Aula android 01.pdfAula android 01.pdf
Aula android 01.pdf
 
Introdução ao Android Studio
Introdução ao Android StudioIntrodução ao Android Studio
Introdução ao Android Studio
 
Mulheres
MulheresMulheres
Mulheres
 
Android Game Engine
Android Game EngineAndroid Game Engine
Android Game Engine
 

Similaire à Android - Parte 8

Internacionalizando um aplicativo BlackBerry API
Internacionalizando um aplicativo BlackBerry APIInternacionalizando um aplicativo BlackBerry API
Internacionalizando um aplicativo BlackBerry APIRicardo Ogliari
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para AndroidClaudio Pereira
 
Atps paradigmas linguagem programacao
Atps paradigmas linguagem programacaoAtps paradigmas linguagem programacao
Atps paradigmas linguagem programacaopablogranola
 
Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Rodrigo Rocha
 
Django - Criando Aplicacoes Plugaveis
Django - Criando Aplicacoes PlugaveisDjango - Criando Aplicacoes Plugaveis
Django - Criando Aplicacoes PlugaveisMarinho Brandão
 
Linguagem de java
Linguagem de javaLinguagem de java
Linguagem de javaGenique
 
Phonegap - Framework Mobile
Phonegap - Framework MobilePhonegap - Framework Mobile
Phonegap - Framework MobileIldyone Martins
 
Desenvolvimento multiplataforma em ambientes de programação nativos e abstr...
Desenvolvimento multiplataforma em ambientes de programação nativos e abstr...Desenvolvimento multiplataforma em ambientes de programação nativos e abstr...
Desenvolvimento multiplataforma em ambientes de programação nativos e abstr...Ráfagan Abreu
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Erisvaldo Junior
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
 
Desenvolva para o Mundo - Internacionalização de Sistemas com Zend Framework
Desenvolva para o Mundo - Internacionalização de Sistemas com Zend FrameworkDesenvolva para o Mundo - Internacionalização de Sistemas com Zend Framework
Desenvolva para o Mundo - Internacionalização de Sistemas com Zend FrameworkEduardo Bona
 
Algoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardoAlgoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardozedaesquina98
 

Similaire à Android - Parte 8 (20)

Internacionalizando um aplicativo BlackBerry API
Internacionalizando um aplicativo BlackBerry APIInternacionalizando um aplicativo BlackBerry API
Internacionalizando um aplicativo BlackBerry API
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
 
Atps paradigmas linguagem programacao
Atps paradigmas linguagem programacaoAtps paradigmas linguagem programacao
Atps paradigmas linguagem programacao
 
Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)
 
Django - Criando Aplicacoes Plugaveis
Django - Criando Aplicacoes PlugaveisDjango - Criando Aplicacoes Plugaveis
Django - Criando Aplicacoes Plugaveis
 
Linguagem de java
Linguagem de javaLinguagem de java
Linguagem de java
 
Poo frank
Poo frankPoo frank
Poo frank
 
Phonegap - Framework Mobile
Phonegap - Framework MobilePhonegap - Framework Mobile
Phonegap - Framework Mobile
 
Desenvolvimento multiplataforma em ambientes de programação nativos e abstr...
Desenvolvimento multiplataforma em ambientes de programação nativos e abstr...Desenvolvimento multiplataforma em ambientes de programação nativos e abstr...
Desenvolvimento multiplataforma em ambientes de programação nativos e abstr...
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao Android
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao Android
 
Workshop frontend
Workshop   frontendWorkshop   frontend
Workshop frontend
 
Desenvolva para o Mundo - Internacionalização de Sistemas com Zend Framework
Desenvolva para o Mundo - Internacionalização de Sistemas com Zend FrameworkDesenvolva para o Mundo - Internacionalização de Sistemas com Zend Framework
Desenvolva para o Mundo - Internacionalização de Sistemas com Zend Framework
 
Android - Notas de aula
Android - Notas de aulaAndroid - Notas de aula
Android - Notas de aula
 
Algoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardoAlgoritmia para o site do 10gi marcelo e ricardo
Algoritmia para o site do 10gi marcelo e ricardo
 
Plano do Projeto
Plano do ProjetoPlano do Projeto
Plano do Projeto
 
Apostila sobre o Visualg
Apostila sobre o VisualgApostila sobre o Visualg
Apostila sobre o Visualg
 
Aula 4 - SAM - Autoria
Aula 4 - SAM - AutoriaAula 4 - SAM - Autoria
Aula 4 - SAM - Autoria
 

Android - Parte 8

  • 1. Android Introdução à programação para dispositivos móveis com o Android SDK Parte 8 – Internacionalização Prof. Manuel F. Paradela Ledón, 2011. Universidade Cruzeiro do Sul
  • 2. Internacionalização Frequentemente necessitamos elaborar um aplicativo com versões em vários idiomas (multilíngue) ou até para países, regiões ou costumes específicas, para que o universo de usuários potenciais seja maior e nosso programa atenda determinadas especificações. A tecnologia Android fornece alguns recursos especiais para garantir esse objetivo. Neste material breve apresentaremos duas abordagens para preparar uma versão “internacionalizada” de nosso aplicativo: • Pastas de arquivos de figuras e de textos diferentes para cada idioma. • Detecção do idioma ou país utilizado no dispositivo, utilizando métodos adequados na lógica de nosso programa, para personalizar mensagens, textos e até estratégias ou critérios específicos da aplicação para as diferentes línguas, regiões ou países.
  • 3. Pastas de arquivos de figuras e de textos diferentes para cada idioma Observe neste exemplo que criamos três pastas para figuras (drawable, drawable-es, drawable-pt), sendo drawable-es a pasta para idioma espanhol, drawable-pt para português e drawable para qualquer outro idioma (pasta default). Por exemplo, uma mesma figura no arquivo cidade.png repetida dentro destas três pastas poderia ter textos específicos em cada língua (escola, escuela, school). Caso a configuração no aparelho esteja em outra língua que não seja espanhol ou português, a figura utilizada será cidade.png da pasta drawable. Para textos multilíngues preparamos quatro pastas (values, values-es, values-it, values-pt) com o arquivo específico com a tradução em cada uma das línguas previstas. Novamente, a pasta value será a utilizada (default) caso o idioma não seja italiano, espanhol ou português.
  • 4. Arquivos de textos diferentes para cada idioma Os conteúdos dos arquivos strings.xml nos quarto idiomas considerados: <resources> <string name="app_name">Teste1</string> <string name="hello_world">Hello world!</string> <string name="menu_settings">Settings</string> <string name="title_activity_main">Example</string> </resources> <resources> <string name="app_name">Teste1</string> <string name="hello_world">¡Hola señores!</string> <string name="menu_settings">Configuraciones</string> <string name="title_activity_main">Ejemplo</string> </resources> <resources> <string name="app_name">Teste1</string> <string name="hello_world">Olá pessoal! Tudo bem?</string> <string name="menu_settings">Configurações</string> <string name="title_activity_main">Exemplo</string> </resources> <resources> <string name="app_name">Teste1</string> <string name="hello_world">Buongiorno ragazzi!</string> <string name="menu_settings">Instrumenti</string> <string name="title_activity_main"> Esempio</string> </resources>
  • 5. O arquivo XML de uma tela (Activity) multilíngue Neste exemplo de arquivo XML utilizamos referências a ic_launcher e hello_world. Android utilizará automaticamente a figura ic_launcher.png da pasta da língua correta e, também, o texto dentro do arquivo strings.xml, dependendo do idioma configurado no aparelho (por exemplo, <string name="hello_world">¡Hola señores!</string> para espanhol). <RelativeLayout xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="match_parent" > <ImageButton android:id="@+id/imageButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="65dp" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/imageButton1" android:text="@string/hello_world" android:textAppearance="?android:attr/textAppearanceLarge" /> </RelativeLayout>
  • 6. Convenção para países e idiomas Em ocasiões será necessário saber o idioma e o país selecionados no aparelho Android para que o programa efetue algumas ações adicionais. Duas normas ISO estabelecem códigos de duas letras para identificar cada idioma e cada país: Os códigos de idioma são duas letras minúsculas, como definidas em ISO_639. Os códigos de países são duas letras maiúsculas, como definidas em ISO_3166-1. Veja mais informação em http://developer.android.com/reference/java/util/Locale.html Assim, por exemplo, as duas letras minúsculas "en" especificam idioma inglês, "es" idioma espanhol e "pt" português. Os códigos de letras de países (duas letras maiúsculas) permitem identificar, por exemplo, Inglaterra como "GB", Espanha como "ES" e Portugal e Brasil pelas siglas "PT" e "BR".
  • 7. Detectando o país e o idioma no programa Android import java.util.Locale; //Importamos a public final class Locale … int idioma=1; String moeda="$"; Locale loc = Locale.getDefault(); String country = loc.getCountry(); String language = loc.getLanguage(); if(language.equalsIgnoreCase("en")) { //English idioma = 1; if(country.equalsIgnoreCase("GB")) moeda = "£"; } if(language.equalsIgnoreCase("es")) { //Español idioma = 2; if(country.equalsIgnoreCase("ES")) moeda = "€"; } if(language.equalsIgnoreCase("pt")) { // Português idioma = 3; if(country.equalsIgnoreCase("BR")) moeda = "R$"; if(country.equalsIgnoreCase("PT")) moeda = "€"; }
  • 8. Bibliografia sugerida ANDROID. Android Developers. Disponível em http://developer.android.com ANDROID. Localization. http://developer.android.com/guide/topics/resources/localization.html http://developer.android.com/reference/java/util/Locale.html ANDROID. Supporting Different Languages. http://developer.android.com/training/basics/supportingdevices/languages.html LECHETA, RICARDO R. Google Android, Aprenda a criar aplicações para dispositivos móveis com o Android SDK. São Paulo: Novatec, 2010. MEDNIEKS, Z. et. al. Desenvolvimento de Aplicações Android. São Paulo: Novatec, 2009.