@scopeact/autoi18n
v1.3.0
Published
Auto i18n tool
Readme
@scopeact/autoi18n
The only i18n tool that handles both Extraction (via AST + AI) and Runtime (Zero-Config).
autoi18n is a dual-purpose tool designed to take a hardcoded React/Next.js project to full internationalization in minutes, not hours.
⚡ The Core: CLI Migration
The CLI scans your TSX files, extracts hardcoded strings using Abstract Syntax Tree (AST), and uses AI to generate semantic keys.
- No Regex: Safe code transformations that won't break your syntax.
- AI-Powered: Keys like
welcome_titleinstead oftext_1. - Auto-Inject: Automatically adds imports to your files.
Quick Start
npx @scopeact/autoi18n init
npx @scopeact/autoi18n run🚀 The Feature: Zero-Config Runtime
We noticed that even after extracting strings, configuring i18n in Next.js (App Router) is a nightmare (Middleware, [locale] folders, etc).
So we built a minimalist, high-performance runtime specifically for the CLI output.
1. Setup the Provider (Root Layout)
No need to move files into [locale] folders. Just wrap your layout.
// app/layout.tsx
import { I18nProvider } from "@scopeact/autoi18n/client";
import { getI18nConfig } from "@scopeact/autoi18n/server";
export default async function RootLayout({ children }) {
const i18n = await getI18nConfig('en'); // Default language
return (
<html lang={i18n.locale}>
<body>
<I18nProvider locale={i18n.locale} messages={i18n.messages}>
{children}
</I18nProvider>
</body>
</html>
);
}2. Usage in Server Components
// app/page.tsx (Server)
import { getI18n } from '@scopeact/autoi18n/server';
export default async function Page() {
const { t } = await getI18n();
return <h1>{t("hero_title")}</h1>;
}3. Usage in Client Components
// components/Button.tsx (Client)
'use client';
import { useI18n } from '@scopeact/autoi18n/client';
export function HeroButton() {
const { t } = useI18n();
return <button>{t("get_started")}</button>;
}🛠 Configuration
Created via init, the auto-i18n.config.json controls the magic:
{
"$schema": "https://unpkg.com/@scopeact/autoi18n@latest/schema.json",
"sourceLang": "pt",
"targetLangs": [ "en", "es" ],
"autoInject": false,
"i18nLibrary": "@scopeact/autoi18n",
"provider": "openai",
"localesDir": "./locales",
"model": "gpt-3.5-turbo",
"files": [ "app/**/*.tsx", "components/**/*.tsx" ]
}💎 Why autoi18n?
| Feature | Tradicional (next-intl/i18next) | autoi18n |
| :--- | :--- | :--- |
| Key Creation | Manual (Hours of copy-paste) | AI-Automated (Seconds) |
| Code Rewrite | Manual | AST-Automated |
| Folder Structure | Forced [locale] nesting | Stay as you are |
| Next.js Setup | Complex (Middleware/Config) | Zero-Config |
🇧🇷 Born in Brazil
Projeto desenvolvido com foco em resolver a dor real de desenvolvedores que precisam entregar projetos globais rápido.
License
MIT © Felipe Vetter
