Anda di halaman 1dari 2

Internacionalizacin

Una de las principales claves del xito de los smartphones y tabletas Android es la oferta de cientos de
miles de aplicaciones a travs de Play Store. Como veremos en otro captulo (vase el captulo Publicar
una aplicacin - Publicacin de la aplicacin en Play Store), Play Store permite descargar aplicaciones en
distintos pases del mundo. Por ello, si el desarrollador quiere satisfacer de la mejor forma a los
usuarios, tendr que proveer aplicaciones en su idioma. Tendr no slo que traducir los textos sino
tambin adaptar el formato de los nmeros, las monedas, los grficos, los archivos de sonido...
Android tiene en cuenta la internacionalizacin de forma nativa, de modo que es relativamente sencillo
programar una aplicacin multiidioma.
A menudo se abrevia el vocablo ingls internacionalizacin (internationalisation) utilizando el
trmino i18n, dado que se trata de una i, seguida de 18 caracteres, y termina con una n.

Durante la ejecucin de una aplicacin, Android utiliza automticamente los datos de la aplicacin que
mejor se corresponden con el dispositivo y su configuracin.
Cuando el dispositivo est configurado para utilizar parmetros regionales distintos a los que propone
la aplicacin, Android utiliza los parmetros regionales por defecto de la aplicacin.
El archivo

strings.xmldebe

estar ubicado por defecto en la carpeta

res/values/.

En este archivo se indican los valores de las cadenas de caracteres en la lengua que se utilizar por
defecto.
Sintaxis
<string name="nombre recurso">"cadena de caracteres"</string>
Las comillas que agrupan la cadena de caracteres no son obligatorias pero permiten utilizar
caracteres especiales tales como el apstrofe...

Ejemplo

<xml version="1.0" encoding="utf-8">


<resources>
<string name="nombre_aplicacion">"MyApplication"</string>
<string name="aceptar">"Ok"</string>
<string name="bienvenida">"Welcome!"</string>
<string name="confirmacion">"Are you sure"</string>
</resources>
En este ejemplo, el idioma ingls se utiliza como idioma por defecto.
El archivo de traduccin por defecto, st
rings.xml, debe existir obligatoriamente y contener
todas las cadenas de caracteres utilizadas en la aplicacin. Si no fuera el caso, la aplicacin no
funcionar y aparecer un mensaje de error.

A continuacin bastar con traducir todo o parte de este archivo en los idiomas deseados creando
nuevos archivos stri
ngs.xmlen las ubicaciones correspondientes:
Ejemplo de traduccin espaola - archivo res/values-es/strings.xml

<?xml version="1.0" encoding="utf-8"?>

<resources>
<string name="nombre_aplicacion">"MiAplicacion"</string>
<string name="bienvenida">"Bienvenido!"</string>
<string name="confirmacion">"Est seguro/a?"</string>
</resources>
Tambin es posible restringir la aplicacin de una traduccin a un pas adems de a una lengua.
Por ejemplo, se crear el archivo
utilizada en Argentina.

res/values-es-rAR/strings.xmlpara

la traduccin espaola

Para un recurso concreto, Android buscar siempre en primer lugar el recurso en el parmetro regional
correspondiente a la configuracin del dispositivo. Si el recurso no existe, se buscar en los archivos
por defecto.
Por ejemplo, supongamos que los parmetros regionales del dispositivo estn configurados para
Espaa y que el recurso buscado es la traduccin de la palabra A
ceptar. Android buscar a
continuacin el recurso en el archivo re
s/values-es/strings.xml. No lo encontrar. Lo buscar
a continuacin en el archivo por defecto res
/values/strings.xml. All el valor s aparece. Android
utilizar por tanto este valor.
Si fuera necesario, tambin es posible internacionalizar los dems tipos de recursos tales como layouts,
recursos grficos y dems recursos especializando del mismo modo las carpetas correspondientes.
Ejemplo
res/drawable/...
res/drawable-es/...
res/drawable-es-AR/...
Es posible recuperar la secuencia de caracteres correspondiente a un recurso utilizando uno de
losmtodos ge
tString. stos permiten parametrizar el identificador del recurso. Uno de ellos permite
tambin pasar como parmetro argumentos complementarios para reemplazarlos en la cadena de
caracteres. Estos mtodos devuelven la cadena de caracteres construida de esta manera.
Sintaxis
public final String getString (int resId)
public final String getString (int resId, Object... formatArgs)
Ejemplo

String msg = getString(R.string.mensajes_no_leidos, "Usuario", 5);

Anda mungkin juga menyukai