Типізована i18n. Справжній SSR. Чисті Angular API.
Etyma дає командам Angular, AnalogJS і Astro типізовані JSON-каталоги, MessageFormat 2 з типізованими параметрами, локалізовані URL, перекладений SSR HTML і lazy-завантаження мов без проблем гідратації.
pnpm add @etyma/core- Angular
- 21 і 22
- AnalogJS
- 2.6 і 2.7
- Astro
- 6 і 7
- Мови
- EN / ES / UK
const i18n = defineRemoteI18n({
locales: ['en', 'es', 'uk'],
sourceLocale: 'en',
contract,
loaders: {
en: createHttpMessageLoader(localeUrl),
es: createHttpMessageLoader(localeUrl),
uk: createHttpMessageLoader(localeUrl)
}
});i18n-шар, який Angular apps мали б мати за замовчуванням.
Типізована інтернаціоналізація для Angular і AnalogJS
Обіцянка, на якій можна будувати продукт.
Кожен задокументований експорт, згенерований формат, код діагностики та код виходу CLI зберігає своє значення в усіх випусках 1.x. Нові можливості приходять у minor-версіях, а не як сюрпризи.
Помилки падають у TypeScript, а не в продакшені.
Ключі, назви параметрів і їхні типи беруться з вашого каталогу. Одруківка, відсутня змінна чи рядок замість числа — це помилка компіляції, і в коді, і в шаблонах 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 });Визнач один раз. Роуть через URL. Гідратуй без миготіння.
Etyma тримає джерельний каталог типізованим, додаткові каталоги lazy, а сторінку синхронною з адресним рядком.
Каталоги й контракти перевіряються в CI, а не в production.
@etyma/cli перевіряє кожну мову відносно джерельної й генерує типізований контракт для JSON-джерела. --check перевіряє закомічений контракт, нічого не записуючи, тож застарілий тип ніколи не потрапить у main. etyma analyze знаходить невідомі ключі в JS/TS, шаблонах Angular і файлах 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 buildОдин portable core, адаптери для трьох фреймворків і інструменти для CI.
@etyma/core відповідає за каталоги, MessageFormat 2 і типи. @etyma/angular, @etyma/analog і @etyma/astro приносять їх у кожен фреймворк. @etyma/tooling і @etyma/cli тримають каталоги й контракти коректними.
Випускайте з типами, перекладом і серверним рендерингом.
Почніть із документації або прочитайте код. Etyma має ліцензію MIT і розробляється відкрито.