Saltar al contenido principal

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:

  1. Crea un proyecto con Maven.

  2. Utilizando Maven incluye la librería Jackson para CSV en tu proyecto. Selecciona la última versión. Infórmate en la red sobre cómo realizar este paso.

  3. Crea un archivo CSV idiomas.csv en 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
  4. Crea una clase Frase con las siguientes características:

    • Un atributo String para el identificador de la frase.
    • Un atributo HashMap para almacenar las diferentes frases en varios idiomas donde la clave es un String con el código del idioma y el valor es la frase en ese idioma.
  5. Crea un constructor que reciba el identificador e inicialice el HashMap.

  6. Crea un getter para el identificador.

  7. Crea un método void agregarTraduccion(String idioma, String frase) que reciba el idioma y la frase en ese idioma y la almacene.

  8. Inicia tu programa leyendo el contenido del archivo idiomas.csv:

    • Para cada fila del archivo csv crea un objeto de la clase Frase.
    • Almacena todos estos objetos en un HashMap donde la clave es el identificador de la frase y el valor es el objeto de la clase Frase correspondiente.

    Busca en la red cómo puedes leer un archivo CSV en Java con la librería Jackson.

  9. Crea en la clase Frase un método String get(String idioma) que reciba el identificador del idioma y devuelva la frase correspondiente en el idioma seleccionado.

  10. Utilizando Maven, incluye la librería Jackson para JSON en tu proyecto. Selecciona la última versión. Infórmate en la red sobre cómo realizar este paso.

  11. Crea un archivo JSON llamado config.json en la raíz del proyecto con el siguiente formato y contenido:

    {
    "language": "gal"
    }
  12. Crea la clase Config con:

    • 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.
  13. Carga el archivo config.json en el programa principal utilizando Jackson para json en un objeto de la clase Config. 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.

  14. Imprime un mensaje de saludo en el idioma seleccionado al inicio del programa principal.

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