v1.0.6 | published npm packages

Small, typed i18n you can verify

CLI workflows | TypeScript safety | Tested adapters | Zero dependencies | MIT

bash
npm install @pico-intl-dev/core @pico-intl-dev/astro
4.2 KBgzip runtime
v1stable API
en/enlive locale

One tested translation contract across your framework stack

Features

Everything you need. Nothing you don't.

pico-intl keeps the core runtime small while the CLI and adapters carry the workflow advantage.

1

Measured bundle size

The current runtime entrypoint measures about 4.2 KB gzip in the repo benchmark; the full dist is reported separately.

2

Tested adapter contract

Core, React, Next, Vue, Svelte, Solid, Astro, and Angular share one behavioral contract for translation, fallback, locale state, and direction metadata.

3

Zero Lock-in

Bidirectional migration. Import from i18next, react-intl, vue-i18n, Fluent, or PO. Export to all of them. Your translations, always.

4

Zero Dependencies

Built purely on native platform APIs — Intl.PluralRules, Intl.Locale. Nothing else. No transitive risk, ever.

5

Workflow-first CLI

init, validate, doctor, translate, extract, generate types, CI gates, stats, import/export, and review files for provider-backed drafts.

6

29 ns per lookup

Measured. t() simple lookup averages 29 ns on Node.js v24. Real numbers, not marketing. Run npm run bench:ci to verify.

Quick Start

Up in 60 seconds

Install, create your locale files, wire up the instance. You're done. No plugins, no config sprawl, no runtime surprises.

1 Install
2 Create locale files
3 Create the instance
4 Translate
ts
import { getAstroT } from '@pico-intl-dev/astro';
import en from './locales/en.json';
import es from './locales/es.json';

const t = getAstroT(Astro.currentLocale ?? 'en', { en, es }, 'en');

<h1>{t('hero.title')}</h1>

Ready to ship?

Add pico-intl to product apps that need portable JSON catalogs, strict gates, and opt-in framework adapters.