i18n tipado. SSR real. APIs limpias para Angular.
Etyma ofrece catálogos JSON tipados, MessageFormat 2 con parámetros tipados, URLs localizadas, HTML traducido en SSR y carga lazy de idiomas segura para hidratación, para Angular, AnalogJS y Astro.
pnpm add @etyma/core- Angular
- 21 y 22
- AnalogJS
- 2.6 y 2.7
- Astro
- 6 y 7
- Idiomas
- EN / ES / UK
const i18n = defineRemoteI18n({
locales: ['en', 'es', 'uk'],
sourceLocale: 'en',
contract,
loaders: {
en: createHttpMessageLoader(localeUrl),
es: createHttpMessageLoader(localeUrl),
uk: createHttpMessageLoader(localeUrl)
}
});La capa i18n que una app Angular debería tener por defecto.
Internacionalización tipada para Angular y AnalogJS
Una promesa sobre la que construir un producto.
Cada export documentado, formato generado, código de diagnóstico y código de salida del CLI mantiene su significado en todas las versiones 1.x. Las novedades llegan como minors, nunca como sorpresas.
Los errores fallan en TypeScript, no en producción.
Las claves, los nombres de parámetros y sus tipos salen de tu catálogo. Un typo, una variable que falta o un texto donde va un número es un error de compilación, en código y en plantillas de Angular.
const { t } = injectI18n(i18n);
t('home.title'); // ok
t('home.titel'); // unknown key
t('footer.rights'); // year required
t('footer.rights', { year: 'x' }); // not a number
t('footer.rights', { year: 2026 });Define una vez. Enruta por URL. Hidrata sin parpadeos.
Etyma mantiene el catálogo fuente tipado, los catálogos secundarios lazy y la página visible alineada con la barra de direcciones.
Catálogos y contratos verificados en CI, no en producción.
@etyma/cli valida cada idioma contra el fuente y genera el contrato tipado para una fuente JSON. --check verifica el contrato commiteado sin escribir nada, así un tipo obsoleto nunca llega a main. etyma analyze encuentra claves desconocidas en JS/TS, plantillas Angular y archivos Astro.
# CI: validate Glossa, then build
etyma validate --remote "https://glossa.andersseen.dev/i18n/etyma-www/{locale}.json" \
--locales en,es,uk --source en
pnpm typecheck && pnpm buildUn core portable, adaptadores para tres frameworks y tooling para CI.
@etyma/core gestiona catálogos, MessageFormat 2 y tipos. @etyma/angular, @etyma/analog y @etyma/astro los llevan a cada framework. @etyma/tooling y @etyma/cli mantienen catálogos y contratos correctos.
Publica con tipos, traducido y renderizado en servidor.
Empieza por la documentación o lee el código. Etyma tiene licencia MIT y se desarrolla en abierto.