Docs / Démarrer / Démarrage rapide
Page traduite automatiquement
Démarrage rapide avec Next.js
Traduis avec verbatra les fichiers de locale next-intl de ton app Next.js, de l'installation au premier texte allemand à l'écran.
À la fin de cette page, ton app Next.js affiche un texte allemand que verbatra a traduit depuis messages/en.json, et un fichier de verrouillage fait que chaque exécution suivante ne traduit que ce qui a changé. Il te faut Node.js ^22.18.0 || >=24, un projet Next.js et une dizaine de minutes. Les quatre premières étapes ne demandent ni compte ni clé d'API.
Tu as déjà des fichiers de locale et un agent de code ? Donne-lui plutôt le prompt de Configure verbatra avec un agent IA : il part des fichiers que ton projet a déjà et s'arrête avant de dépenser quoi que ce soit.
Étapes
Installe la CLI
npm install --save-dev @verbatra/cliverbatra est un outil de développement et n'est jamais livré dans ton app. Les commandes ci-dessous utilisent npx ; avec pnpm, yarn ou bun, lance plutôt pnpm verbatra, yarn verbatra ou bun run verbatra.
Ajoute un fichier de locale source
Si messages/en.json existe déjà, passe cette étape. Sinon, crée-le avec deux textes, dont un avec un placeholder :
{
"greeting": "Hello, {name}!",
"cart": {
"empty": "Your cart is empty."
}
}Génère une configuration
npx @verbatra/cli init --format next-intl-json --provider gemini --yes--format next-intl-json est le format de fichier de next-intl. init trouve tes fichiers de locale, ou écrit le motif messages/{locale}.json quand il n'y en a pas encore. --yes reprend ce que init a détecté au lieu de poser des questions. Le nouveau verbatra.config.ts traduit de en vers de ; ajoute des codes à targetLocales pour d'autres langues.
Prévisualise l'exécution sans clé
npx @verbatra/cli translate --dry-runverbatra: dry run over 1 locale, no provider call
verbatra: de done, 2 would translate
verbatra translate (dry run)
de: 2 would translate, 0 unchanged
1 succeeded, 0 partial, 0 failed (dry run: nothing written)
[ok] dry run done in 0.0s, nothing written
next: verbatra translate (run it for real)Une exécution à blanc ne construit aucun fournisseur : elle n'a pas besoin de clé, ne dépense rien et n'écrit rien.
Traduis
cp .env.example .envOuvre .env et colle ta clé après GEMINI_. Pas encore de clé ? Gemini a une offre gratuite : crées-en une dans Google AI Studio. Les autres fournisseurs et leurs variables sont sur Fournisseurs.
npx @verbatra/cli translateverbatra envoie les deux textes à Gemini, vérifie que chaque placeholder a survécu et écrit messages/de.json. La formulation dépend du modèle, par exemple :
{
"greeting": "Hallo, {name}!",
"cart": {
"empty": "Dein Warenkorb ist leer."
}
}Vérifie que chaque locale est synchronisée
npx @verbatra/cli check[ok] checking the locales (0.0s)
verbatra check
de: 0 missing, 0 stale, 2 up-to-date (in sync)
all locales in synccheck n'appelle aucun fournisseur et se termine avec 1 dès qu'une locale n'est plus synchronisée : il peut donc protéger une pull request.
Charge les locales dans ton app
Ajoute next-intl :
npm install next-intlPuis charge les deux fichiers et affiche la salutation :
import type { NextConfig } from "next";
import createNextIntlPlugin from "next-intl/plugin";
const nextConfig: NextConfig = {};
export default createNextIntlPlugin()(nextConfig);// with a src/ folder: src/i18n/request.ts, importing ../../messages
import { getRequestConfig } from "next-intl/server";
export default getRequestConfig(async () => {
const locale = "de";
return {
locale,
messages: (await import(`../messages/${locale}.json`)).default,
};
});import { useTranslations } from "next-intl";
export default function Home() {
const t = useTranslations();
return <p>{t("greeting", { name: "Ada" })}</p>;
}Lance ton app : la salutation affiche Hallo, Ada!.
Ce qui vient de se passer
verbatra.lock.jsonenregistre un hash de chaque texte source, pour que l'exécution suivante n'envoie que les textes nouveaux ou modifiés. Voir Le fichier de verrouillage.- Un résultat qui perd un placeholder est retenu, jamais écrit. Voir Sûreté de la traduction.
Commite ensemble les fichiers de locale, verbatra.lock.json et verbatra.provenance.json.
Optionnel : connecte ton agent de code Disponible à partir de 0.12.0
npx @verbatra/cli init --agentAvec la configuration en place, init --agent la garde et ajoute seulement les fichiers pour l'agent : les règles verbatra dans AGENTS.md (ou CLAUDE.md, quand c'est ton seul fichier d'instructions) et le serveur MCP verbatra, sans les outils qui dépensent, dans la configuration de projet de chaque agent de code qu'il détecte. Quels fichiers il écrit pour quel agent, et comment choisir toi-même les agents avec --client, c'est dans Préparer les agents de code. --dry-run montre les fichiers sans les écrire.
Ou, sans la CLI, ajoute seulement le serveur MCP à ton profil utilisateur VS Code ; utilise une seule voie, jamais les deux :
Ensuite
Ajouter une langue
Ajoute une locale cible et laisse une exécution la remplir.
Exécuter verbatra en CI
Fais échouer une pull request quand une locale dérive.
Choisis ta stack
L'id de format et l'organisation de fichiers de tout autre framework.