Sobre el proyecto

Locale es un workspace de Rust que proporciona identificadores de locale fuertemente tipados generados a partir del conjunto de datos Unicode CLDR (Common Locale Data Repository). El README indica que cubre 766 locales Unicode basados en CLDR 48.1.0, con datos obtenidos del repositorio oficial CLDR-JSON. El workspace contiene dos crates. locale-rs es la biblioteca de producción para la gestión y el formato de locales. locale-dev es una herramienta de generación de código que verifica en GitHub la última versión de CLDR-JSON, descarga o reutiliza datos en caché, regenera el código de locale-rs y luego formatea y aplica lint al resultado. Este diseño mantiene la biblioteca sincronizada con nuevas versiones de Unicode en lugar de depender de cadenas codificadas. Las capacidades principales descritas en el README incluyen locales con seguridad de tipos como variantes de enum validadas en tiempo de compilación, formato de números consciente del locale usando dígitos nativos, patrones de moneda compatibles con ICU, y nombres localizados de meses y días de la semana para el formato de fechas. El análisis acepta guiones, guiones bajos o mayúsculas y minúsculas mixtas. La negociación de locales encuentra la mejor coincidencia entre opciones disponibles usando cadenas de respaldo, y las sugerencias difusas proponen correcciones para errores tipográficos o locales desconocidos. El README también enumera muchos sistemas de dígitos compatibles, como latino, árabe-índico, devanagari, bengalí, tamil, tailandés y tibetano. Los ejemplos de uso muestran acceso directo a enums como Locale::en_GB, análisis mediante FromStr o from_flexible, extracción de subtags de idioma y región, y obtención de un locale de respaldo. El formato de números se demuestra a través de un trait ToFormattedString, produciendo salida agrupada como 1,234,567 para inglés y 1.234.567 para alemán. También se proporcionan ejemplos de negociación y sugerencias. El README afirma abstracciones de costo cero y variantes de enum de locale de tamaño cero. Señala inspiración arquitectónica del crate num-format. La licencia es dual MIT o Apache-2.0 para el código del proyecto, mientras que los datos de locale derivan de Unicode CLDR bajo la Licencia Unicode V3. Las contribuciones se dirigen principalmente a la lógica de generación en locale-dev o a métodos auxiliares, pruebas y ejemplos en locale-rs.