Boletín 405. Programa completo
En esta práctica veremos cómo podemos configurar un programa para utilizar varios idiomas diferentes y que el usuario pueda seleccionar el idioma que desea utilizar.
Además, veremos la lectura de archivos CSV y la lectura/escritura de archivos JSON para poder hacer este cambio de configuración permanente.
Enunciado
Crearemos un nuevo programa de prueba para ver cómo hacerlo multilenguaje. Sigue los siguientes pasos:
-
Crea un proyecto con Maven.
-
Utilizando Maven incluye la librería
Jacksonpara CSV en tu proyecto. Selecciona la última versión. Infórmate en la red sobre cómo realizar este paso. -
Crea un archivo CSV
idiomas.csven la raíz del proyecto con 4 campos: identificador (id), gallego (gal), español (esp) e inglés (eng). Ejemplo con contenido:id,gal,esp,eng
saludo,Ola,Hola,Hello
despedida,Atalogo,Hasta luego,Goodbye
menuInicio,Selecciona una opción,Selecciona una opción,Select an option
cambiarIdioma,Configurar idioma,Configurar idioma,Language configuration
seleccionaIdioma,Selecciona un idioma,Selecciona un idioma,Select a language
opcionInvalida,Selecciona una opción válida,Selecciona una opción válida,Select a valid option
salir,Sair,Salir,Exit -
Crea una clase
Frasecon las siguientes características:- Un atributo
Stringpara el identificador de la frase. - Un atributo
HashMappara almacenar las diferentes frases en varios idiomas donde la clave es unStringcon el código del idioma y el valor es la frase en ese idioma.
- Un atributo
-
Crea un constructor que reciba el identificador e inicialice el
HashMap. -
Crea un getter para el identificador.
-
Crea un método
void agregarTraduccion(String idioma, String frase)que reciba el idioma y la frase en ese idioma y la almacene. -
Inicia tu programa leyendo el contenido del archivo
idiomas.csv:- Para cada fila del archivo
csvcrea un objeto de la claseFrase. - Almacena todos estos objetos en un
HashMapdonde la clave es el identificador de la frase y el valor es el objeto de la claseFrasecorrespondiente.
Busca en la red cómo puedes leer un archivo CSV en Java con la librería
Jackson. - Para cada fila del archivo
-
Crea en la clase
Fraseun métodoString get(String idioma)que reciba el identificador del idioma y devuelva la frase correspondiente en el idioma seleccionado. -
Utilizando Maven, incluye la librería
Jacksonpara JSON en tu proyecto. Selecciona la última versión. Infórmate en la red sobre cómo realizar este paso. -
Crea un archivo JSON llamado
config.jsonen la raíz del proyecto con el siguiente formato y contenido:{
"language": "gal"
} -
Crea la clase
Configcon:- Un único atributo que sea una cadena de texto para almacenar el idioma seleccionado del programa.
- Crea un constructor que reciba este atributo.
- Crea el getter y setter para este atributo.
-
Carga el archivo
config.jsonen el programa principal utilizandoJacksonparajsonen un objeto de la claseConfig. Este objeto contendrá la configuración de idioma del programa. Establece el idioma gallego por defecto en caso de que no se encuentre el archivo. -
Imprime un mensaje de saludo en el idioma seleccionado al inicio del programa principal.
-
Crea un menú con dos opciones siempre utilizando el idioma seleccionado:
a) Configurar idioma→ Debes poder cambiar el idioma del programa mediante un menú. Además, el idioma seleccionado se guardará en el archivo de configuración para próximas ejecuciones.b) Salir→ Muestra el mensaje de despedida del programa y el programa termina su ejecución.