lunes, 12 de marzo de 2012

6.7.2.Programación en Android - Texto de ayuda localizado


6.7.2.- Programación en Android - Texto de ayuda localizado

En el anterior capítulo habíamos realizado la actividad de ayuda, en la que se mostraba un texto, el cual cargábamos desde un recurso raw. En ese momento se indicó que eso se podría haber hecho con un recurso string y que al hacerlo a través del recurso string tendríamos localización que de la otra forma perderíamos.
Pues en este capítulo veremos como tener localización teniendo el fichero de texto en la carpeta raw, además veremos como acceder a los recursos a través de su nombre.
Para poder tener localización vamos a añadir un nuevo recurso de tipo string al fichero string.xml (en la carpeta values, que será el que esté localizado):

Tipo
Nombre
Valor
String
fichero_texto_ayuda
ayuda
(nombre del fichero que tiene la ayuda)

Debemos recordar que de momento la carpeta values, tiene la localización por defecto, más tarde debemos añadir values-es... etc para tenerla para español y dejar esa en inglés. Después editaríamos el fichero values y pondríamos el string de fichero_texto_ayuda con el valor help (que es el nombre del fichero de ayuda en inglés).
Al realizar esto, vemos como la cadena de texto es distinta según el fichero en el que se halle.

Ahora para poder hacer uso de esto, utilizaremos el método getIdentifier(param1, param2, param3), y los parámetros de esté metodo son: param1: string con el nombre del fichero, param2: tipo de recurso, param3: package.

Modificaremos el método para cargar el fichero de ayuda (cargarFicheroAyuda) añadiendo lo siguiente (y comentando lo indicado):

//Cargamos el fichero sin internacionalización:
//InputStream iFichero = getResources().openRawResource(R.raw.ayuda);

/**
* En caso de querer hacer localización, realizaríamos lo siguiente:
* Crearíamos el el archivo string.xml un recurso string con el
* valor del fichero de texto para esa lengua: help, ayuda, etc.. Ya
* que el fichero strings estará localizado.
*/
String fichero = getResources().getString(R.string.fichero_texto_ayuda);
//Esta línea se ha incorporado en una sóla llamada.
//int idfichero = getResources().getIdentifier(fichero, "raw",
// "com.blogspot.pafh99.cursoandroid.CorrectoIncorrecto");

InputStream iFichero = getResources().openRawResource(
getResources().getIdentifier(fichero, "raw",
"com.blogspot.pafh99.cursoandroid.CorrectoIncorrecto"));

Con esto nos cargaría el fichero de texto indicado en values-xx o en su defecto values.


Ver. 1.0 – Revisión 12/03/2012

No hay comentarios:

Publicar un comentario