1# rimay-localize — localización (i18n) declarativa
2
3Catálogos de cadenas por idioma + una API de lookup minimalista para las apps de
4gioser. Los catálogos son **datos** (JSON) cargables en tiempo de ejecución; el
5código pide una clave y un idioma y obtiene la cadena, con interpolación de
6placeholders `{nombre}`.
7
8## Qué expone
9
10- `Lang` — etiqueta de idioma (BCP-47 simplificado).
11- `Catalog` — mapa clave → cadena para un idioma.
12- `Localizer` — colección de catálogos + idioma activo + fallback.
13- Lookup con sustitución de placeholders por argumentos con nombre.
14
15## Nota de naming
16
17`rimay` es el dominio de lenguaje/voz; este crate es su utilidad de localización
18transversal (no es parte del núcleo de `rimay`).
19
20## Estado (2026-05-31)
21
22### Hecho
23- Carga de catálogos JSON por idioma.
24- Lookup con idioma activo + fallback y tests.
25- Interpolación de placeholders `{nombre}`.
26
27### Pendiente
28- Pluralización compleja (ICU) y reglas por idioma.
29- Detección del idioma del sistema (hoy lo decide la app).
30- Herramienta de extracción/validación de claves faltantes.
31
32## Lugar en el repo
33
34`shared/rimay-localize` — utilidad i18n transversal para apps gioser.
README.md
rimay-localize — localización (i18n) declarativa
Catálogos de cadenas por idioma + una API de lookup minimalista para las apps de
gioser. Los catálogos son datos (JSON) cargables en tiempo de ejecución; el
código pide una clave y un idioma y obtiene la cadena, con interpolación de
placeholders {nombre}.
Qué expone
Lang — etiqueta de idioma (BCP-47 simplificado).
Catalog — mapa clave → cadena para un idioma.
Localizer — colección de catálogos + idioma activo + fallback.
- Lookup con sustitución de placeholders por argumentos con nombre.
Nota de naming
rimay es el dominio de lenguaje/voz; este crate es su utilidad de localización
transversal (no es parte del núcleo de rimay).
Estado (2026-05-31)
Hecho
- Carga de catálogos JSON por idioma.
- Lookup con idioma activo + fallback y tests.
- Interpolación de placeholders
{nombre}.
Pendiente
- Pluralización compleja (ICU) y reglas por idioma.
- Detección del idioma del sistema (hoy lo decide la app).
- Herramienta de extracción/validación de claves faltantes.
Lugar en el repo
shared/rimay-localize — utilidad i18n transversal para apps gioser.