Android - Parte 8

342 visualizações

Publicada em

Parte 8 de um grupo de materiais elaborados pelo Prof. Manuel Fernández Paradela Ledón para as aulas de Programação para Dispositivos Móveis (programação na plataforma Android).

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
342
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
7
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Android - Parte 8

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

×