Web oficial de Etyma

i18n tipado. SSR real. APIs limpias para Angular.

Etyma ofrece catálogos JSON tipados, MessageFormat 2, URLs localizadas, HTML traducido en SSR y carga lazy de idiomas segura para hidratación.

Angular
21 y 22
AnalogJS
2.6 y 2.7
Idiomas
EN / ES / UK
etyma.config.ts
const i18n = defineI18n({
  locales: ['en', 'es', 'uk'],
  sourceLocale: 'en',
  source: en,
  loaders: {
    es: () => import('./es.json'),
    uk: () => import('./uk.json')
  }
});
SSREl HTML localizado sale del servidor antes de iniciar hidratación.
Por qué existe

La capa i18n que una app Angular debería tener por defecto.

Internacionalización tipada para Angular y AnalogJS

Claves tipadasEl catálogo fuente define el contrato de claves. Los errores de escritura fallan en TypeScript en vez de convertirse en UI vacía.SSR primeroUna URL localizada renderiza HTML localizado en el servidor, transfiere el catálogo e hidrata sin cargar ese idioma otra vez.Lista para edgeLa integración Analog se prueba con un build de Cloudflare Pages para validar el paquete y el runtime real.
Cómo funciona

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.

01Escribe catálogosJSON sigue siendo legible mientras TypeScript usa el idioma fuente como contrato.02Sirve URLs localizadasEl idioma fuente queda limpio y los idiomas secundarios viven bajo prefijos estables.03Transfiere el idioma activoSSR envía el catálogo que usó la página, así la hidratación no lo vuelve a pedir ni muestra inglés.
Paquetes

Un core portable y dos adaptadores para Angular.

@etyma/core gestiona catálogos y MessageFormat. @etyma/angular expone signals y transfer state. @etyma/analog conecta rutas, SSR y SEO.

@etyma/core
@etyma/angular
@etyma/analog