[IN ENGLISH] [EN GALEGO]

¡JAVAGALICIAN 1.1 PUBLICADO! (21 junio 2010). [DESCARGAR]

JAVAGALICIAN es una extensión para la máquina virtual Java (JVM) que añade soporte para las localizaciones gallegas (gl, gl_ES). Brevemente:

El proyecto JAVAGALICIAN

El problema

Fijémonos en este fragmento de código, que debería mostrar una fecha formateada en gallego:

    final Locale glLocale = new Locale("gl","ES");        // language = Galician, country = Spain
    final String myDateStr = DateFormat.getDateInstance(DateFormat.FULL, glLocale).format(myDate);
    System.out.println(myDateStr);

Sin embargo, esto es lo que muestra:

Monday, September 21, 2009

¡Eso no es gallego! Y esto ocurre porque, aunque hemos especificado la localización 'gl_ES', esta localización no existe en la máquina virtual estándar... de modo que lo que obtenemos es una salida formateada en inglés.

La solución

Java SE 6 (JDK 1.6.0) añadió a su API una jerarquía de interfaces de provisión de servicios (Service Provider Interfaces, SPIs) que permiten una fácil adición de capacidades de localización a la máquina virtual Java. Estos SPIs extienden a la clase java.util.spi.LocaleServiceProvider y cubren las siguientes funcionalidades:

FuncionalidadSPIEjemplo localizado por JAVAGALICIAN
Formato de fechasjava.text.spi.DateFormatProviderxoves 31 de decembro de 2009 23H59' CET
S 355mbolos de formato de fechasjava.text.spi.DateFormatSymbolsProviderxaneiro, venres
Formato de n 372merosjava.text.spi.NumberFormatProvider2.312.600,35, 2.312.600,35  200
S 355mbolos de formato de n 372merosjava.text.spi.DecimalFormatSymbolsProvider2.312.600,35
Ordenaci 363n y comparaci 363n de textosjava.text.spi.CollatorProvider{at 363mico,  301tomo, at 363nito,  301tono}
Segmentaci 363n de textosjava.text.spi.BreakIteratorProvider|O| 341baco|sit 372ase|sobre|o|capitel|
Nombres de localizaciones (pa 355ses + idiomas)java.util.spi.LocaleNameProviderArxentina, Alema 361a, castel 341n
Nombres de zonas horariasjava.util.spi.TimeZoneNameProviderHora de ver 341n de Europa Central
S 355mbolos de monedasjava.util.spi.CurrencyNameProviderEUR,USD

TODAS estas funcionalidades de localización están cubiertas por JAVAGALICIAN, de modo que funcione como una solución completa a la falta de soporte nativo para gallego en la JVM, convirtiendo a 'gl' y 'gl_ES' en localizaciones completamente soportadas en la máquina virtual Java.

Por ejemplo, con JAVAGALICIAN instalado, el mismo fragmento de código de arriba daría como resultado:

luns 21 de setembro de 2009

Contexto

La lengua gallega

El gallego es una lengua hablada por más de 3 millones de personas en el noroeste de España, principalmente en la Comunidad Autónoma de Galicia. Es una lengua romance originada a partir del latín durante la edad media y muy cercanamente emparentada con el portugués, y actualmente tiene el estatus de cooficial en la Comunidad Autónoma de Galicia tal y como es reconocido en la Constitución Española, compartiendo este estatus con la lengua castellana (conocida a menudo fuera de España como 'español') y en igualdad de derechos con ella dentro de la Comunidad.

El gallego es además el idioma oficial del Gobierno y las instituciones oficiales de esta Comunidad Autónoma, es enseñado en todas las escuelas de Galicia y usado para la enseñanza en una distribución de asignaturas del 50% con el castellano. Varios canales de televisión regionales y estaciones de radio emiten sus contenidos exclusivamente en gallego, y varios periódicos usan también esta lengua (tanto en forma monolingüe como bilingüe).

El gallego es estudiado y estandarizado por una institución oficial denominada Real Academia Galega, que promulga normas de gramática, ortografía y vocabulario, y trabaja para la promoción de la lengua.

Puedes leer más sobre estos temas en la Wikipedia: [Galicia] [Lengua Gallega] [Real Academia Galega]

Localización gallega

El código de idioma estándar para el gallego es 'gl', de acuerdo con lo establecido en la especificación ISO 639-1 para códigos de idiomas. Por lo tanto las localizaciones gallegas son 'gl' para la versión sin país y 'gl_ES' para la versión con país.

La lengua gallega en Java

La máquina virtual Java de Sun Microsystems nunca ha incluido soporte para las localizaciones gallegas, aunque éstas fueron aceptadas en 2004 como RFE (Request For Enhancement/Petición de Mejora) 5104387 para el JDK 1.4.2, y ha sido un importante tema de discusión desde entonces.

Durante todo este tiempo, las empresas de desarrollo de software Java en Galicia o en cualquier otro lugar que trabajasen para el Gobierno o instituciones gallegas, o que simplemente orientasen sus productos de software al mercado gallegohablante, han tenido que desarrollar sus propias soluciones (a menudo incompletas o no adheridas a estándares) para paliar la falta de soporte nativo para la lengua gallega en la máquina virtual Java.