Bienvenidos sean a este post, hoy hablaremos sobre como tener varios lenguajes en nuestra aplicacion Asteroides y si bien ya lo vimos un ejemplo en este post ahora ahondaremos un poco mas en nuestra aplicacion Asteroides.

Anuncios

Primero abriremos a Asteroides desde nuestro Android Studio e iremos a los recursos de res/values donde haremos click con el boton derecho y seleccionaremos New->Values resource file, aparecera un nuevo cuadro seleccionen Locale presionen el boton >> para agregarlo, apareceran tres cuadros y en el segundo seleccionaran English (en) y en el tercero la region a lo cual les sugiero Any Region el cuadro quedara algo asi

Repitiendo este proceso pueden agregar mas idiomas, por ejemplo yo agregue el idioma portugues y el idioma frances donde nos quedara los siguientes recursos

Solo nos resta agregar el contenido para los distintos idiomas, para el primer caso reemplazaremos el codigo de strings.xml (en) con el siguiente codigo:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">Asteroids</string>
    <string name="tituloJuego">Asteroids</string>
    <string name="botonJugar">Play</string>
    <string name="botonConf">Settings</string>
    <string name="botonAcerca">About</string>
    <string name="botonSalir">Scores</string>
    <string name="tituloAcerca">About</string>
    <string name="tituloPref">Preferences</string>
    <string name="pref_musica">Play Music</string>
    <string name="pref_graficos">Graphics Type</string>
    <string name="pref_fragmentos">Fragment numbers</string>
    <string name="pref_sum_musica">Plays the background music</string>
    <string name="pref_sum_graficos">Choose the representation of graphics</string>
    <string name="pref_sum_fragmento">Choose how many pieces the asteroids are divided</string>
    <string name="pref_multi">Multiplayer Mode</string>
    <string name="pref_activar">Activate Multiplayer</string>
    <string name="pref_jugadores">Maximum of Players</string>
    <string name="pref_conexion">Types of Connection</string>
</resources>
Anuncios

Este es el codigo para strings.xml (pt):

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">Asteróides</string>
    <string name="tituloJuego">Asteróides</string>
    <string name="botonJugar">jogar</string>
    <string name="botonConf">Configurar</string>
    <string name="botonAcerca">Sobre</string>
    <string name="botonSalir">Pontuações</string>
    <string name="tituloAcerca">Sobre...</string>
    <string name="tituloPref">Preferências</string>
    <string name="pref_musica">Tocar musica</string>
    <string name="pref_graficos">Tipo de gráfico</string>
    <string name="pref_fragmentos">Número de fragmentos</string>
    <string name="pref_sum_musica">Música de fundo toca</string>
    <string name="pref_sum_graficos">A representação dos gráficos é escolhida</string>
    <string name="pref_sum_fragmento">Em quantas peças os asteróides são divididos</string>
    <string name="pref_multi">Modo multiplayer</string>
    <string name="pref_activar">Ativar multijogador</string>
    <string name="pref_jugadores">Máximo de jogadores</string>
    <string name="pref_conexion">Tipos de conexão</string>
</resources>

Y este ultimo codigo es para strings.xml (fr):

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">Astéroïdes</string>
    <string name="tituloJuego">Astéroïdes</string>
    <string name="botonJugar">Jouer</string>
    <string name="botonConf">Configurer</string>
    <string name="botonAcerca">à propos de</string>
    <string name="botonSalir">Les scores</string>
    <string name="tituloAcerca">à propos de...</string>
    <string name="tituloPref">Préférences</string>
    <string name="pref_musica">jouer de la musique</string>
    <string name="pref_graficos">Type de graphique</string>
    <string name="pref_fragmentos">Nombre de fragments</string>
    <string name="pref_sum_musica">La musique de fond joue</string>
    <string name="pref_sum_graficos">La représentation du graphique est choisie</string>
    <string name="pref_sum_fragmento">En combien de morceaux les astéroïdes sont divisés</string>
    <string name="pref_multi">Mode multijoueur</string>
    <string name="pref_activar">Activer le mode multijoueur</string>
    <string name="pref_jugadores">Maximum de joueurs</string>
    <string name="pref_conexion">Types de connexion</string>
</resources>
Anuncios

Estas tres cadenas son simplemente las mismas lineas que tenemos en el strings.xml original pero traducidas al ingles, portuges y frances respectivamente, en el siguiente video veremos su funcionamiento

En este video podemos ver como en nuestro emulador podemos cambiar el lenguaje del dispositivo y con Asteroides abierto este modifica los titulos automaticamente a los que nosotros agregamos (ingles, frances y portugues) pero cual es la utilidad de esto? Poder ampliar nuestro mercado porque esto no solamente nos limitara al español sino tambien a los agregados permitiendo a las personas tener un mejor acceso, otra modificacion es poder adaptarlo a diferentes dispositivos, como puede ser una tablet o un televisor pero para ello deberiamos agregarlo cuando creamos el proyecto, eso es antes de la ultima actualizacion en el siguiente video podemos ver como fue eliminada dicha opcion

En la version anterior de Android Studio se veia asi

Donde nosotros podiamos seleccionar varias opciones, en fin continuando con las compatibilidades de nuestra aplicacion tambien debemos tener en cuenta los tamaños de las pantallas porque obviamente no va a ser lo mismo un telefono que una tablet e inclusive entre telefonos tenemos distintos tipos de pantalla para eso repasemos los distintos tipos de pantalla que reconoce Android:

Anuncios
Tamaño de la ventana

Medida fisica de la diagonal de la pantalla en pulgadas, por un tema de comodidad se definen cuatro posibles valores:

  • small: 2-3″ (Telefonos pequeños)
  • normal: 3-4,5″ (Telefonos normales, PDA)
  • large: 4,2-7″ (Telefonos de alta gama, tablets)
  • xlarge: 7-10,5″ (PC, Tablets, etc)
Ratio de aspecto

Relacion entre las medidas fisicas entre la altura y anchura de la pantalla, se definen dos valores: long y notlong

Resolucion

Es el numero total de pixeles en pantalla, veamos un listado a continuacion:

  • QVGA -> (200×320)
  • PWQVGA -> (240×432)
  • HVGA -> (320×480)
  • WVGA -> (480×800)
  • PWVGA -> (480×854)
  • WXGA -> (1280×800)
Densidad

Es la cantidad de pixeles por unidad de superficie, se mide en dpi (pulgadas por puntos por sus siglas en ingles), es de especial utiilidad cuando trabajamos con imagenes de mapas de bits, en este post analizamos la necesidad de disponer de iconos con distintas densidades para distintos tipos de pantalla, veamos a continuacion un listado de los distintos tipos de densidades:

  • ldpi = 120dpi
  • mdpi = 160dpi
  • tvdpi = 213dpi
  • hdpi = 240dpi
  • xhdpi = 320dpi
  • xxhdpi = 480dpi
  • xxxhdpi = 640dpi

Si bien en general los layouts pueden soportar varios tamaños u orientaciones, es conveniente tener varios layouts para distintos tipos de pantalla pero otra opcion es utilizar la etiqueta SUPPORTS-SCREEN en AndroidManifest.xml para habilitar o deshabilitar los posibles tamaños de pantalla soportados por nuestra aplicacion.

Otra forma de poder ver como son las cantidades de dispositivos utilizados hoy en dia es por medio de la siguiente URL:

https://developer.android.com/about/dashboards

En esta podremos ver en tiempo las estadisticas de los sistemas operativos utilizados, tamaño de pantallas y versiones de OpenGl.

Anuncios

En resumen, hoy hemos visto como usar distintos lenguajes para nuestra aplicacion, hemos hablado de las distintas formas de medicion de la pantalla, como antes se podia diseñar la aplicacion para distintos dispositivos, y una pagina para ver las estadisticas de los dispositivos utilizados, espero les sea util sigueme en Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00