IDs deterministas
La especificación I18nId v1 usa hashing BLAKE3 para identificadores consistentes y resistentes a colisiones.
Greentic ofrece soporte integral de internacionalización (i18n) mediante la biblioteca greentic-i18n. Esto permite:
IDs deterministas
La especificación I18nId v1 usa hashing BLAKE3 para identificadores consistentes y resistentes a colisiones.
Multiformato
Soporte para formatos de traducción JSON, YAML, PO y XLIFF.
Integración con tarjetas
Soporte incorporado para traducir Adaptive Cards.
Cambio en runtime
Cambia de idioma por sesión sin reiniciar.
Source String: "Hello, World!" │ ▼┌─────────────────────────────────┐│ BLAKE3 Hash Function ││ blake3(normalize(string)) │└─────────────────────────────────┘ │ ▼I18nId: "i18n:v1:abc123def456" │ ▼┌─────────────────────────────────┐│ Translation Lookup ││ locale_map[id] → "Halo!" │└─────────────────────────────────┘Para Adaptive Cards:
greentic-cards2pack extract-i18n --input ./cards --output i18n/en.jsonUsando greentic-i18n-translator (impulsado por Codex CLI):
greentic-i18n-translator translate --langs fr,de,ja --en i18n/en.jsonO traduce automáticamente durante la generación del pack:
greentic-cards2pack generate \ --cards ./cards --out ./pack --name demo \ --auto-translate --langs fr,de,jai18n: default_locale: "en" locales: en: "translations/en.json" id: "translations/id.json" ja: "translations/ja.json"- id: greet type: reply config: message_key: "i18n:v1:abc123" # Resolved based on session localeEl locale se resuelve en este orden:
# Set session locale- id: set_language type: state config: action: set key: "locale" value: "id" # IndonesianSe admite cualquier idioma. Configuraciones comunes:
| Locale | Idioma |
|---|---|
en | Inglés |
id | Indonesio |
ja | Japonés |
zh | Chino |
es | Español |
de | Alemán |