Siguiendo el post anterior, ya me he dado la pequeña paliza de ir externalizando String por todo el código eclipse para sacar los textos y que alguien los traduzca al inglés y al ruso. Yo domino varios idiomas: colombiano, cubano, chileno, argentino, mexicano, etc, pero inglés no y el ruso menos, así que todo el trabajo para el traductor, que para eso le pagan.
Me comentan que el traductor, cómo no, es ofimático, así que lo de darle los ficheros de propiedades que encima son textos técnicos pues no vale. Tenemos que pasar esos textos en una columna de una hoja excel. Debemos añadir otra columna en la hoja con explicaciones de los textos más complejos, palabras que no se traducen o significado de ciertas palabras técnicas o propias del proyecto. Y dos columnas más vacías, una para que lo ponga en inglés y otra en ruso.
Pues bien, es una oportunidad estupenda para aprender a usar POI y hacer un programa java que haga:
- Se le indica un directorio a partir del cual buscar, que será el directorio del proyecto. A partir de ahí, busca recursivamente todos los ficheros messages.properties generados por eclipse. Para la búsqueda de ficheros recursivamente, he usado un pequeño buscador de ficheros en java que me hice en su día.
- Lee cada uno de esos ficheros y genera varios EXCEL con el formato indicado anteriormente. De cosecha propia he añadido una columna con la "clave" de la etiqueta en el properties, de forma que luego pueda generar los messages_en.properties y messages_ru.properties también de forma automática. Me he inventado lo de _ru, de ruso.
- Salva el excel poniendo un nombre al fichero xls que corresponda más o menos con el paquete donde está el messages.properties. Algo como cambiar los puntos de los paquetes por _
Dicho y hecho. Me he cogido POI, un pequeño ejemplo de uso de otro compañero y me he hecho el programita java. Ahora ando con la tontería de poner en la hoja una cabecera bonita, unos bordes para las celdas y demás.
Aprovecho para dar unas pequeñas indicaciones de cómo se usa POI para crear un EXCEL.
Ante todo, bajarnos el jar de poi. Como lo he hecho con maven, lo he añadido como dependencia en el pom.xml copiando del pom.xml de poi, así que sin problemas, maven crea el proyecto eclipse y se baja el jar.
Y en el código java, lo primero, crear el cuaderno de excel y una hoja
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet1 = wb.createSheet("Hoja 1");
creamos ahora una fila, la fila cero, y le ponemos celdas de cabecera
HSSFRow row = sheet1.createRow((short) 0);
HSSFCell cell = row.createCell((short) 0); // celda de columna 0
cell.setCellValue("ESPAÑOL");
cell = row.createCell((short) 1); // celda de columna 1
cell.setCellValue("RUSO");
…
y así sucesivamente con el resto de filas y columnas y todos los datos. Finalmente, para guardar definitivamente el fichero
FileOutputStream fileOut = new FileOutputStream("fichero.xls");
wb.write(fileOut);
fileOut.close();
y listo. La verdad es que me ha asombrado lo sencillo que es. Ahora ando metiendo estilos en las celdas y tampoco parece complejo, aunque sí un poco más laborioso. Así que ya tengo dos entretenimientos que hacer. Un par de pequeños tutoriales en la Chuwiki: Un ejemplo sencillo y algo como "ExportTableModelToExcel" y el viceinverso.
¿Ves para lo que sirve el ruso? Para aprender POI xDDDD
Estoy deseando meterme con el chino, a ver qué sale 😀